【问题标题】:Could a iOS app received Notifiction from another project with FirebaseiOS 应用程序是否可以使用 Firebase 从另一个项目接收通知
【发布时间】:2018-08-30 04:01:55
【问题描述】:

我已经通过firebase项目(命名为:A项目)构建了一个iOS应用程序。然后我的

iOS 应用可以通过 A 项目收到通知。

任何解决方案都可以让我的 iOS 应用收到通知表单 firebase

项目(名称:B项目)?


我的带有 A 项目的 iOS 应用程序可以使用 B 项目读取/写入实时数据库

通过设置「FirebaseOptions」。

所以任何其他人都可以帮助我了解如何接收来自 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 只能初始化一次。)

【问题讨论】:

    标签: ios firebase firebase-realtime-database notifications firebase-cloud-messaging


    【解决方案1】:

    是的,这是可能的。 Firebase 支持在单个应用程序中访问多个项目。您可以查看official blog post here for Android, iOS and webofficial documentation(包括iOS)。

    这是文档的摘录 -

    在您的 iOS 应用程序中支持多种环境

    默认情况下, FirebaseApp.configure() 将加载 GoogleService-Info.plist 文件 与应用程序捆绑在一起。如果您的开发和生产 在 XCode 中将环境配置为单独的目标,您可以:

    同时下载GoogleService-Info.plist文件将这两个文件存储在 不同的目录将两者都添加到您的 XCode 项目中关联 使用 Target Membership 具有不同目标的不同文件 面板:目标会员面板

    如果构建是单个目标的一部分,最好的选择是 两个配置文件的唯一名称(例如 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)
    

    【讨论】:

    • 菜鸟,谢谢你的回复。我按照上述步骤操作,我的 iOS 应用仍然无法收到来自 B 项目的通知。我的 iOS 应用程序仅从 A 项目收到。官方文档没有解释多环境下的“通知”
    • 有没有人帮助我解决我的问题?一个目标 ios 应用程序收到来自两个带有 firebase 的项目的通知?一次只有一个 ios 应用 FirebaseApp.configure()?
    • @HunterChen 这种双重配置在 Android 和 Web 上都适用于我。我还没有机会在 iOS 上查看它。您能否创建一个示例应用程序,其中除了配置之外没有任何其他代码,并查看它是否在那里工作?
    • 我的目的是一个目标在运行时具有双重配置。所以我的 ios 应用程序可以同时收到 firebase 项目的通知。这意味着 ios 应用程序收到了来自 A 项目和 B 项目的通知。
    • "您能否创建一个示例应用程序,其中除了配置之外没有任何其他代码,并查看它是否在那里工作?"你做了这部分吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    相关资源
    最近更新 更多