簡體   English   中英

Firebase 雲功能:部署 function 時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM