【问题标题】:Firebase-admin deal with multiple environmentsFirebase-admin 处理多种环境
【发布时间】:2019-06-17 23:35:45
【问题描述】:

我对 firebase-admin(和一般的 firebase)还很陌生。

我在 Firebase 上有一个名为 X 的项目,我在 proddev 中创建了 2 个 android 应用。

为了初始化我的 nodejs firebase-admin,我传递了从 firebase 控制台下载的 service-account.json。起初我以为每个应用程序都有一个,但似乎它是项目级别的。

我想使用messaging 功能发送推送通知,它工作正常,但我不确定我要发送它的环境(我不是 android 开发者,只是 nodejs)。

我的问题是,如何初始化 firebase-admin 使其指向 proddev ?我通常将 env 变量用于这类东西,但我不知道将什么传递给 initializeApp() 函数。

我已经尝试过https://firebase.google.com/docs/admin/setup#initialize_multiple_apps,但看不到在哪里可以指定devprod 应用程序?

到目前为止我就是这样初始化它的:

const app = firebaseAdmin.initializeApp({
    credential: firebaseAdmin.credential.applicationDefault()
});

...

app.messaging().send(message)
 .then((response) => {
     // Response is a message ID string.
     console.log('Successfully sent message:', response);
 })
 .catch((error) => {
     console.log('Error sending message:', error);
 });

谢谢

【问题讨论】:

  • 你在使用云功能吗?
  • 到目前为止,我只使用app.messaging().send
  • 是的,但问题更多,你的后端在哪里?在 Firestore 云功能上还是您使用任何其他实现?
  • 如果您有不同的开发环境,您应该创建不同的项目并将应用程序分别添加到它们。他们几乎不适合共享同一个项目。如果你这样做了,那么你对于每个项目都有完全不同的凭据来初始化管理 SDK。
  • 我正在使用自己的服务器在 NodeJS 中编码,并使用这个包npmjs.com/package/firebase-admin

标签: node.js firebase firebase-cloud-messaging firebase-admin


【解决方案1】:

您需要为每个使用的环境创建一个项目,这是常见的做法。

取决于您的使用案例,您可能会选择不同的定价计划。

为每个导出 sdk 密钥,您可以根据环境变量或任何其他可能对您有用的技术进行实例化。

【讨论】:

  • 能否添加一些代码作为示例?
猜你喜欢
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多