我通过Firebase项目(命名为:一个项目)构建了一个iOS应用程序。然后我的
iOS 应用可能会收到带有 A 项目弹出的通知。
有什么解决方案可以让我的iOS应用收到来自Firebase的通知
吗 项目(命名:B项目)?
我的带有A项目的iOS应用程序可以使用B项目读取/写入实时数据库
通过设置「火基选项」。
所以任何其他人都可以帮助我如何接收来自 B 的通知 项目?
我的代码如下:
// [END register_for_notifications],Default configuration with A project
FirebaseApp.configure()
// Load a named file. another configuration with B project
let filePath = Bundle.main.path(forResource: "GoogleService-Info-coinExchange2", ofType: "plist")
guard let fileopts = FirebaseOptions(contentsOfFile: filePath!)
else { return false }
FirebaseApp.configure(options: fileopts)
====
============我在运行时只选择一种配置。如何在运行时包含双重配置?(因为 FirebaseApp.configure 只能初始化一次。
是的,这是可能的。Firebase 支持在单个应用中访问多个项目。您可以在此处查看适用于Android,iOS和Web的官方博客文章以及官方文档(包括iOS)。
这是文档的摘录 -
在 iOS 应用程序中支持多种环境
默认情况下,
FirebaseApp.configure()
将加载GoogleService-Info.plist
文件 与应用程序捆绑在一起。如果您的开发和生产 环境在 XCode 中配置为单独的目标,您可以:下载两个
GoogleService-Info.plist
文件 将两个文件存储在 不同的目录 将两者添加到 XCode 项目中 关联 使用目标成员资格的不同目标的不同文件 面板:"目标成员资格"面板如果构建是单个目标的一部分,最好的选择是给出 两个配置文件的唯一名称(例如 GoogleService-Info-Free.plist 和 GoogleService-Info-Paid.plist)。然后 在运行时选择要加载的 PLIST。如下所示 例:
// Load a named file. let filePath = Bundle.main.path(forResource: "MyGoogleService", ofType: "plist") guard let fileopts = FirebaseOptions(contentsOfFile: filePath!) else { assert(false, "Couldn't load config file") } FirebaseApp.configure(options: fileopts)