gpt4 book ai didi

ios - 如何从一个 Xcode 项目访问多个 Firebase 数据库

转载 作者:行者123 更新时间:2023-11-30 11:41:58 24 4
gpt4 key购买 nike

我目前正在 Xcode 中使用 swift 创建一个应用,我想在一个 Xcode 项目中读取和写入两个不同的 Firebase 数据库。我知道 Firebase 肯定支持这一点,但是当我使用他们的文档时,我仍然发现很难设置。

我知道这个问题有一个使用 Android 的答案:https://stackoverflow.com/a/43215981/9308748

但是,我正在为 IOS 制作应用程序。

我已查看文档并遵循其说明,但每当我运行该项目时,它都会尝试从最近创建的 Firebase 数据库中获取我正在查找的所有信息,而不是我试图从中检索的特定信息。我不知道要在 AppDelegate 类中放入哪些代码以及在 viewController 类中放入哪些代码才能连接到特定数据库。

我已将两个 GoogleService-info.plist 文件添加到我的 Xcode 项目中(我不知道是否应该这样做)

这是我迄今为止在 AppDelegate 类中为我的两个 Firebase 项目所做的事情:

    let primaryOptions = FirebaseOptions(googleAppID: "My googleAppID", gcmSenderID: "my gcmSender")
primaryOptions.bundleID = "my bundleID"
primaryOptions.apiKey = "my apiKey"
primaryOptions.clientID = "my clientID"
primaryOptions.databaseURL = "my DatabaseURL"
primaryOptions.storageBucket = "my storageBucket"

FirebaseApp.configure(name: "primaryOptions", options: primaryOptions)

guard let primaryApp = FirebaseApp.app(name: "primaryOptions")
else { assert(false, "Could Not retrieve primary app")}

let primaryDB = Database.database(app: primaryApp)

然后在我的 AppDelegate 类中执行此操作后,我不知道如何从我的 View Controller 类中引用这组特定的信息,以便从特定的数据库读取和写入。

请帮忙!

最佳答案

在 AppDelegate 中配置所有应用程序后,有两种方法可以帮助您完成整个代码(您可以在任何 viewController 中使用它)

1) app(name:)

返回先前创建的具有给定名称的 FIRApp 实例,如果不存在此类应用程序,则返回 nil。该方法是线程安全的。

声明

class func app(name: String) -> FirebaseApp?

示例:

guard let primaryApp = FirebaseApp.app(name: "primaryOptions") else { return }

2) allApps()

返回所有现有 FIRApp 实例的集合,如果没有 FIRApp 实例,则返回 nil。该方法是线程安全的。

声明

class func allApps() -> [String : FirebaseApp]?

示例:

guard let allApps = FirebaseApp.allApps, let primaryApp = allApps["primaryOptions"] else { return }

获取 FirbaseApp 实例后,您可以获得数据库引用

Database.database(app: primaryApp).reference()

关于ios - 如何从一个 Xcode 项目访问多个 Firebase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49213879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com