ios - Swift macOS Firebase

标签 ios swift macos firebase firebase-realtime-database

我有一个启用了 Firebase 的 IOS 应用程序。
现在我正在尝试向这个项目添加一个 macOS swift 应用程序,但我不知道如何去做。
(我知道有一个选项可以将 IOS 应用程序移植到 macOS,但我想要 两个具有不同功能的独立应用程序 ,一个用于 IOS,一个用于 macOS)
Firebase Admin 中没有选项(据我所知)来添加 macOS 应用程序,因此我在 Firebase Admin 中创建了一个新的 IOS 应用程序并尝试使用 macOS 应用程序项目进行设置。 (很可能这是我整个问题的问题)
当我运行我的 macOS 项目时,我在 AppDelegate 中收到这些错误:

The default Firebase app has not yet been configured. Add [FIRApp configure]; (FirebaseApp.configure() in Swift) to your application initialization.

An uncaught exception was raised

Failed to get FirebaseApp instance. Please call FirebaseApp.configure() before using Firestore

Terminating app due to uncaught exception 'FIRIllegalStateException', reason: 'Failed to get FirebaseApp instance. Please call FirebaseApp.configure() before using Firestore'


虽然我用过 FirebaseApp.configure()在我的 applicationDidFinishLaunching .
我也导入了每个 pod ,但没有任何帮助。
pod 'Firebase'
pod 'Firebase/Core'
pod 'Firebase/Analytics'
pod 'Firebase/Auth'
pod 'FirebaseDatabase'
pod 'Firebase/ABTesting'
pod 'Firebase/Database'
pod 'Firebase/Firestore'
pod 'FirebaseFirestore'
pod 'Firebase/Functions'
pod 'Firebase/Messaging'
pod 'Firebase/RemoteConfig'
pod 'Firebase/Storage'
我的问题是我可能做错了什么?
或者 Firebase 不支持 macOS 应用程序?
如果是,那么我如何将现有的 Firebase IOS 项目与新的 macOS Swift 应用程序一起使用?

最佳答案

Sipos Péter 的回答很好,这里有一些额外的提示。

另一个答案中的 podfile 是正确的。但是,macOS 应用程序的加载顺序是不同的,因此为了稳定性,您需要在顺序中更早地使用 Firebase 代码。

因此,AppDelegate 中不需要 firebase 代码。将该代码移动到主 viewControllers viewDidLoad 函数并创建一个类 var 以引用 Firebase。像这样:

var ref: DatabaseReference!

override func viewDidLoad() {
    super.viewDidLoad()

    FirebaseApp.configure() //set up Firebase

    //a class reference to your firebase, This is optional but saves typing
    self.ref = Database.database().reference() 

    let version = Database.sdkVersion() //print out the sdk if needed
    print("Firebase Version \(version)") //just prints the current Firebase version

    self.authToFirebase() //your function to handle auth'ing this user

    //continue app setup
    self.myTableView.dataSource = self
    self.myTableView.delegate = self
}

关于ios - Swift macOS Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59805273/

相关文章:

ios - 评估类的方法或属性

ios - 使用自定义 UITableViewCell 显示 Toast 弹出窗口的模式

ios - 管理全局状态(没有单例)

iOS将containerview中的item链接到viewcontroller

xcode - 我在哪里可以找到 Xcode6 中的 "Load Symbols Lazily"选项?

ios - 在哪里设置 NavigationController.NavigationBar.isUserInteractionEnabled

ios - Xcode UI 未使用最新的 Firebase 值进行更新

ios - 根据属性值过滤数组

java - 10.9.3 Android Studio 之后的 Mac 操作系统无法运行

macos - OSX 协同设计。避免检查特定资源