Следующая информация основана на firebase-admin-node@8.9.0
, текущем Node.js SDK на момент публикации:
Опция 1 и Опция 2 функционально одинаковы для используемых учетных данных.
Всякий раз, когда объект FirebaseAppOptions
(первый параметр) не имеет свойства 'credential'
, он устанавливается на getApplicationDefault(...)
, так же, как в методе admin.credential.applicationDefault()
. Это учетные данные, предоставленные средой выполнения Google / Firebase, в которой вы выполняете свой код.
Однако в Опция 1 - переменные конфигурации Firebase (databaseURL
, databaseAuthVariableOverride
, projectId
, et c) заполняются с помощью переменной окружения FIREBASE_CONFIG
, тогда как в Option 2 и Option 3 они должны быть явно установлены вашим кодом.
Переменная среды FIREBASE_CONFIG
является либо строкой JSON, либо путем к файлу. В среде Firebase Cloud Functions или локально обслуживаемом проекте эта переменная среды заполняется соответствующей конфигурацией проекта Firebase.
Наконец, Опция 3 позволяет настроить собственную учетную запись службы для использования для вашего экземпляра Admin SDK. Вы можете использовать это, чтобы сузить доступ, который есть у вашего Admin SDK - например, доступ только к Cloud Firestore, а не к Cloud Storage. Это особенно полезно при работе со вторичными экземплярами Admin SDK, которые имеют единственное назначение (admin.initializeApp({...}, 'some-named-instance')
). Его также можно использовать, когда вы хотите запустить свой код в среде тестирования, а не в производственной базе данных. Это также позволяет вам добавлять больше областей к другим службам, принадлежащим Google, в учетную запись службы, такую как Gmail и Google Docs, для простой реализации.