部署 Firebase Auth 创建触发器时,我的 Google Cloud Function Deploy CLI 脚本失败

问题描述 投票:0回答:1

有人可以解释一下如何使用 gcloud cli 部署此 firebase auth 云函数触发器吗?我想使用 gcloud cli 维护我的云功能,而不是 firebase cli。

package.json

{
  "name": "createUser",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "deploy": "gcloud functions deploy $npm_package_name --memory 128Mi --region us-central1 --allow-unauthenticated  --entry-point $npm_package_name --trigger-event-filters=type=user.create --trigger-event-filters=provider=firebase.auth --source . --runtime nodejs20 --gen2 --service-account [email protected] --stage-bucket realtime-missions-functions "
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@google-cloud/functions-framework": "^3.3.0",
    "geofire-common": "^6.0.0",
    "firebase-admin": "^11.11.0"
  }
}

index.js

export const createUser = functions.auth.user().onCreate(async (user) => {
  try {
    const db = await getFirestore(app, 'realtime-missions-db');
    const docRef = await db.collection('userProfile').doc(user.uid);

    await docRef.set({
      email: user.email, 
      userID: user.uid
    })
    res.status(200).send('event started') 
  }
  catch(error){
    res.status(500).send(error)
  }
});

部署脚本

npm run deploy

在 gcloud cli 上列出触发器时,我尝试将部署事件触发器更改为完整类型名称

--trigger-event-filters=type=providers/firebase.auth/eventTypes/user.create

--trigger-event providers/firebase.auth/eventTypes/user.create

在 gcloud 中列出触发器类型时,此处列出了事件触发器类型。

gcloud functions event-types list

导致

providers/cloud.storage/eventTypes/object.change  
providers/firebase.auth/eventTypes/user.create   
providers/firebase.auth/eventTypes/user.delete    
providers/google.firebase.analytics/eventTypes/event.log  
providers/google.firebase.database/eventTypes/ref.create  
providers/google.firebase.database/eventTypes/ref.delete 
providers/google.firebase.database/eventTypes/ref.update 
providers/google.firebase.database/eventTypes/ref.write 
google.firebase.remoteconfig.update               
providers/cloud.firestore/eventTypes/document.create 
providers/cloud.firestore/eventTypes/document.delete  
providers/cloud.firestore/eventTypes/document.update 
providers/cloud.firestore/eventTypes/document.write
firebase google-cloud-functions gcloud gcloud-cli
1个回答
0
投票

不支持。如果您使用 Firebase Functions SDK 来编写 Cloud Function(您显然正在这样做),那么您绝对必须使用 Firebase CLI 来部署它。 gcloud 根本不知道如何处理该代码和配置。 Firebase CLI 对遇到的代码进行特殊解释,并能够将其转换为 Google Cloud 可以理解的一组新代码和配置。同样,Firebase CLI 无法部署通常只能由 gcloud 理解的代码。

© www.soinside.com 2019 - 2024. All rights reserved.