Firebase:为身份验证和通知设置不同的环境

Posted

技术标签:

【中文标题】Firebase:为身份验证和通知设置不同的环境【英文标题】:Firebase: Setting up different environments for Auth and Notification 【发布时间】:2020-09-28 04:04:02 【问题描述】:

我有 2 个移动应用和一个网络应用,它们使用相同的 Firebase 身份验证和通知服务。我只使用 Auth 和 Notification 服务,没有别的。

我需要一个临时环境和生产环境,并且两者都需要并行运行。

我在 Firebase 中没有看到其他选项,而不是创建两个不同的项目。但这是有风险的,因为我必须在移动应用中替换 JSON 文件,在 Web 应用中替换 Admin SDK 内容等等。

那么最好的选择是什么?我仅将 Firebase 用于身份验证和通知。在通知中,我向各个设备和用户组发送消息。

也许要求用户使用不同的电子邮件帐户进行测试和生产是要走的路? (因为这样即使使用相同的Auth空间,Auth数据也不会混乱)

【问题讨论】:

【参考方案1】:

您可以只有一个 Firebase 项目,并在该项目中创建多个应用。例如,您可以使用包名称(android)/bundle id(ios)“com.example.myapp”创建一个用于生产的应用程序,另一个用于暂存“com.example.myapp.staging”。这样,您可以下载具有两种配置的单个 json 文件。在您的 android studio/xcode 中,您必须使用相应的构建配置设置这些包名称/捆绑 ID。

【讨论】:

我知道我可以创建多个应用程序。那不是我的问题。我的问题是,无论我在一个项目中创建了多少应用程序,我都有一个身份验证系统和通知系统。默认情况下,单个项目中的所有应用都会使用它们,因为 Firebase 就是这样工作的。另外我不认为有阶段/产品包名称是要走的路。 firebase.google.com/docs/projects/… 所以如果我这样做,我会得到两个不同的 Auth 部分副本吗?例如,生产中收集的电子邮件/密码列表将与暂存中收集的电子邮件/密码分开?或者两者都将在同一个 Auth 部分中提供? (这意味着,“staging”中的用户也可以登录到生产应用程序,因为他的身份验证被保存) 因为正如我所提到的,我只使用 Firebase 进行身份验证和通知。我不将它用于数据库目的。所以我正在寻找一种解决方案,我可以在其中为身份验证暂存/生产环境。然后我将拥有 2 个不同的身份验证副本。 如文档所述,您可以在 firebase 中有 2 个项目(生产和登台),每个项目都有自己的身份验证和通知系统。它们将生成 2 个 json/plist 文件,您必须将它们添加到您的 android/iOS 项目中,并将它们配置为将每个文件与构建变体 (android) 或目标 (iOS) 相关联。这样,您的用户将只属于他们注册的 firebase 项目。

以上是关于Firebase:为身份验证和通知设置不同的环境的主要内容,如果未能解决你的问题,请参考以下文章

由于 Firebase 手机身份验证,App Store 被拒绝

Flutter - 将 Firebase 通知推送给没有 Firebase 身份验证的特定用户

使用 Firebase 进行 Chrome 扩展程序身份验证

颤动的firebase身份验证提供者未通知

如何使用 JWT for Google firebase 生成身份验证令牌?

从 Flutter 为 Firebase 身份验证设置自定义声明