尝试从云函数中删除 firestore 集合时未找到 firebase_tools

min*_*ist 5 firebase firebase-tools google-cloud-functions google-cloud-firestore

我正在尝试使用可调用的 firebase 函数删除一个集合。

我从这里拿了一个示例代码。

示例代码有一个“firebase_tools”元素。

        return firebase_tools.firestore
            .delete(path, {
                project: process.env.GCLOUD_PROJECT,
                recursive: true,
                yes: true,
                token: functions.config().fb.token
            })

Run Code Online (Sandbox Code Playgroud)

这显然不是firebase-function 我在函数日志中收到以下错误的一部分:

Unhandled error ReferenceError: firebase_tools is not defined

该文件还提到:

您可以使用 firebase-tools 包将 Firebase CLI 的任何功能导入到自己的 Node.js 应用程序中。

但我不知道该怎么做。

Ren*_*nec 11

如果您查看参考的同一文档,您将找到示例代码的链接:https : //github.com/firebase/snippets-node/tree/master/firestore/solution-deletes

然后,如果您查看 Cloud Function 代码 ( index.js),您将看到此示例如下所示:

const admin = require('firebase-admin');
const firebase_tools = require('firebase-tools');
const functions = require('firebase-functions');

admin.initializeApp();
Run Code Online (Sandbox Code Playgroud)

所以你需要:

  • 首先,检查您firebase-tools是否正确安装了软件包。通常情况下应该是这种情况,因为您很可能已经在使用 Firebase CLI(请参阅https://github.com/firebase/firebase-tools)。如果没有,请使用npm i firebase-tools.
  • 其次,const firebase_tools = require('firebase-tools');如示例中所示,将其导入到您的云函数中。

然后你就可以调用了firebase_tools.firestore.delete()