尝试从云功能删除Firestore集合时找不到firebase_tools

时间:2019-04-30 07:59:02

标签: firebase google-cloud-firestore google-cloud-functions firebase-tools

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

我从here提取了示例代码。

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

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

显然不是firebase-function的一部分 我在功能日志中遇到以下错误:

Unhandled error ReferenceError: firebase_tools is not defined

文档还提到:

  

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

但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

如果您查找的文档相同,则会找到示例代码的链接: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();

所以您需要:

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

您将可以致电firebase_tools.firestore.delete()