[英]Firebase Cloud Functions: Error while deploying function
我正在將以下 function 部署到 firebase:
const functions = require("firebase-functions");
const firebase = require("firebase-admin");
firebase.initializeApp()
var firestore = firebase.firestore()
exports.resetCreditsForFreeUsers = functions.pubsub
.schedule('* * * * *')
.onRun(async (context) => {
const users = firestore.collection('tests')
const user = await users.get()
user.forEach(snapshot => {
snapshot.ref.update({ balance: 10 })
})
return null;
})
使用命令firebase deploy --only functions
和 output 是:
i deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
> lint
> eslint
+ functions: Finished running predeploy script.
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
+ functions: required API cloudbuild.googleapis.com is enabled
+ artifactregistry: required API artifactregistry.googleapis.com is enabled
Error: Failed to make request to https://serviceusage.googleapis.com/v1/projects/*PROJECTNAME*/services/runtimeconfig.googleapis.com
我不知道如何解決這個錯誤。
用Dharmaraj 回答編輯我用 Promise 嘗試了你的回答。
錯誤:
+ functions: Finished running predeploy script.
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
+ artifactregistry: required API artifactregistry.googleapis.com is enabled
+ functions: required API cloudfunctions.googleapis.com is enabled
+ functions: required API cloudbuild.googleapis.com is enabled
i functions: preparing codebase default for deployment
i functions: preparing functions directory for uploading...
i functions: packaged C:\Users\andre\Documents\firebase-functions\functions (78.21 KB) for uploading
Error: Failed to make request to https://cloudfunctions.googleapis.com/v2alpha/projects/betty-sport/locations/-/functions
編輯用 set() 改變 update()
Error: Failed to list functions for betty-sport
.update()
返回一個Promise所以你應該等待它解決。 嘗試重構代碼,如下所示:
exports.resetCreditsForFreeUsers = functions.pubsub
.schedule('* * * * *')
.onRun(async (context) => {
const users = firestore.collection('tests')
const user = await users.get()
const promises = user.docs.map(d => d.ref.update({ balance: 10 }));
await Promise.all(promises);
return null;
})
或者,您也可以使用批量寫入一次更新多達 500 個文檔,而不是單獨更新它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.