Как использовать один инициализированный экземпляр Firebase Admin в нескольких модулях Node.js?

РЕШЕНО: я создавал циклическую зависимость, одновременно импортируя свои рабочие модули в мой модуль конфигурации Firebase, чтобы инициализировать их, и в то же время импортируя мой модуль конфигурации Firebase в мои рабочие модули!!! Вау, это кажется глупым задним числом, я рвал на себе волосы!

Таким образом, это, по сути, дубликат этой проблемы: решение циклической зависимости в узле с использованием requirejs< /а>

где я сначала вводил рабочих, а затем определял firebase, поэтому он, очевидно, не был определен на этапе требуемых рабочих модулей.

оригинал --------------------

В своих клиентских приложениях я обычно использую шаблон с одним файлом, в котором я инициализирую свое приложение Firebase, а затем экспортирую это инициализированное приложение как модуль, который затем могу импортировать в других местах. Я пытаюсь использовать этого администратора Firebase на своем сервере узлов, но он продолжает отображаться как неопределенный.

Что считается лучшей практикой для инициализации приложения Firebase Admin и последующего использования этого экземпляра в других модулях? Спасибо

Изменить: добавлен код, извините. Я пропустил несколько шагов, но экземпляр firebase отлично работает внутри этого файла, у меня просто проблема с его экспортом.

 const admin = require("firebase-admin");
 const Admin = admin.initializeApp({
  credential: "my_credential",
  databaseURL: "my database"
 });

 module.exports.Admin = Admin;

Затем в другом месте я пытаюсь импортировать этого администратора и добавлять к нему ссылки и т. д., например:

 const firebase = require('../myFirebaseModule);
 const Admin = firebase.Admin;

 const ref = Admin.database().ref();

Но получаю ошибку, что она не определена. Или, если я попытаюсь вытащить администратора firebase из пакета, а не из моего модуля в другом файле, например

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

он говорит, что мне нужно инициализировать его. Ваше здоровье.


person Sam Matthews    schedule 20.01.2017    source источник
comment
Возможно, какой-нибудь код сделает то, что вы пытаетесь сделать, немного яснее.   -  person cartant    schedule 20.01.2017
comment
Не могу воспроизвести это; меня устраивает.   -  person cartant    schedule 20.01.2017
comment
о ничего себе, спасибо, что заставил меня понять, что это, должно быть, ошибка пользователя, поэтому я огляделся. Я только что понял, что я делал неправильно, я одновременно импортировал свои рабочие модули в мой файл конфигурации firebase и инициализировал их там, но в то же время импортировал конфигурацию firebase в свои рабочие модули!!! Думаю, это моя первая встреча с циклической зависимостью, ха-ха. Теперь это работает, я должен просто удалить вопрос? Или я могу пометить это как решенное, если хотите, и просто объяснить, что я делал неправильно?   -  person Sam Matthews    schedule 20.01.2017
comment
Приятно слышать, что вы решили это. Если где-то в Stack Overflow есть ответ на циклическую зависимость Node - он должен быть - вы можете закрыть этот вопрос как обман, сославшись на этот ответ. В противном случае просто ответьте на свой вопрос. (Обратите внимание, что закрытые вопросы не обязательно удаляются; вопросы, которые не являются точными дубликатами, но имеют один и тот же ответ, обычно закрываются, но не удаляются, поскольку они действуют как указатели.)   -  person cartant    schedule 20.01.2017
comment
Закроется сейчас спасибо за вашу помощь!   -  person Sam Matthews    schedule 20.01.2017