gpt4 book ai didi

firebase - 在没有 AppDelegate 和 SceneDelegate 的新 SwiftUI 应用程序生命周期中,我的 iOS 应用程序在哪里配置 Firebase?

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

我已经有一个可以使用 SwiftUI 完全构建的应用程序。
我使用 Firebase 使用 Cloud Functions 进行身份验证和通知。
现在使用新的 SwiftUI App->Scene->View 构造,我无法将设置添加到我的应用程序中。
例如 -> 初始 FirebaseApp.configure()最初会进入 didFinishLaunchingWithOptionsAppDelegate ,现在我不知道在哪里添加这个配置。
设置远程通知也是如此。
PS:如果需要更多以前应用程序的详细信息/代码,请评论。我没有添加任何代码,因为我觉得这是不必要的。

最佳答案

在新的 SwiftUI 生命周期中初始化第三方框架有三种方法:
使用旧的生命周期模型
您仍然可以使用旧的生命周期模型:
选项 1:使用 UIKit App Delegate 生命周期
在新建 SwiftUI 项目时,可以选择旧的生命周期模型。这将创建一个 AppDelegateSceneDelegate像之前一样。我承认,它不像一直使用 SwiftUI 那样花哨——但绝对是最简单、最直接的方式。
Setting up a SwiftUI 2.0 project with the traditional AppDelegate Life Cycle
使用新的生命周期模型
如果要使用新的生命周期模型,请使用以下方法之一。
选项 2:使用 App的初始化器
您可以覆盖 App 的默认初始化程序类,像这样:

import SwiftUI
import Firebase

@main
struct SO62626652_InitialiserApp: App {

init() {
FirebaseApp.configure()
}

var body: some Scene {
WindowGroup {
ContentView()
}
}
}
选项 3:使用 @ UIApplicationDelegateAdaptor在你 App类,定义一个包含对您的 AppDelegate 的引用的属性,并让 SwiftUI 注入(inject) AppDelegate使用 @ UIApplicationDelegateAdaptor属性包装器,如下所示:
import SwiftUI
import Firebase

@main
struct SO62626652_AppDelegateAdaptorApp: App {
@UIApplicationDelegateAdaptor private var appDelegate: AppDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}

class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
FirebaseApp.configure()
return true
}
}

关于firebase - 在没有 AppDelegate 和 SceneDelegate 的新 SwiftUI 应用程序生命周期中,我的 iOS 应用程序在哪里配置 Firebase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62626652/

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