как инициализировать приложение в firebase с правами администратора - PullRequest
0 голосов
/ 03 мая 2020

У меня возникает эта ошибка при попытке инициализировать приложение с помощью firebase: "Приложение Firebase по умолчанию не существует. Убедитесь, что вы вызываете initializeApp () перед использованием любой из служб Firebase."

это мой сценарий:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const servicesAccount = require("./admin.json");

const express = require("express");
const app = express();

const firebase = require("firebase");
const firebaseConfig = {...};

const database = admin.firestore();

firebase.initializeApp(firebaseConfig);

admin.initializeApp({
  credential: admin.credential.cert(servicesAccount),
  databaseURL: "...",
});

, а затем все мои маршруты ...

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Вы должны вызвать initializeApp() до любых других методов объекта Admin. Измените порядок операторов следующим образом:

admin.initializeApp({
  credential: admin.credential.cert(servicesAccount),
  databaseURL: "...",
});

const database = admin.firestore();

Обратите внимание, что admin.firestore() следует после initializeApp().

1 голос
/ 03 мая 2020

Обычно, если вы хотите взаимодействовать из облачной функции с внутренними службами Firebase (Firestore, база данных в реальном времени, облачное хранилище и т. Д. c.), Вам просто нужно инициализировать Admin SDK без параметров

В этом случае SDK использует учетные данные приложения Google по умолчанию и считывает параметры из переменной среды FIREBASE_CONFIG. ... Переменная окружения FIREBASE_CONFIG автоматически включается в облачные функции для функций Firebase, которые были развернуты с помощью Firebase CLI .

Также посмотрите на следующий раздел облака Функции выполняют c: новый синтаксис инициализации для firebase-admin.


С другой стороны, вы делаете следующее

const firebaseConfig = {...};
firebase.initializeApp(firebaseConfig);

, когда хотите использовать Firebase JavaScript SDK в вашем веб-приложении или в качестве клиента для доступа конечного пользователя, например, в Node.js настольном приложении или приложении IoT.


Итак, в заключение вы должны сделать что-то вроде:

const functions = require("firebase-functions");
const admin = require("firebase-admin");

admin.initializeApp();

const express = require("express");
const app = express();

const database = admin.firestore();

//....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...