firebase_tools не найден при попытке удалить коллекцию firestore из облачных функций - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь удалить коллекцию с помощью вызываемой функции firebase.

Я взял пример кода с здесь .

В примере кода есть элемент 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 в собственное приложение Node.js, используя пакет firebase-tools.

Но я не мог понять, как это сделать.

1 Ответ

2 голосов
/ 30 апреля 2019

Если вы посмотрите на тот же документ, на который ссылаетесь, вы найдете ссылку на пример кода: https://github.com/firebase/snippets-node/tree/master/firestore/solution-deletes

Тогда, если вы посмотрите на код функции облака (index.js), вы увидите, что этот пример начинается следующим образом:

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

admin.initializeApp();

Так что вам нужно:

  • Во-первых, проверьте, правильно ли установлен пакет firebase-tools. Обычно так и должно быть, поскольку вы, скорее всего, уже используете интерфейс командной строки Firebase (см. https://github.com/firebase/firebase-tools). В противном случае установите его с помощью npm i firebase-tools.
  • Во-вторых, импортируйте его в облачную функцию с помощью const firebase_tools = require('firebase-tools');, как показано в примере.

После этого вы сможете звонить firebase_tools.firestore.delete().

...