将 Flutter App 的 iOS 部分连接到 Firebase 的困惑

Posted

技术标签:

【中文标题】将 Flutter App 的 iOS 部分连接到 Firebase 的困惑【英文标题】:Confusion connecting iOS portion of Flutter App to Firebase 【发布时间】:2019-03-19 09:47:45 【问题描述】:

我正在尝试将我的 Flutter 应用的 ios 部分连接到 Firebase。当我完成 Firebase 上的步骤时 - “将 Firebase 添加到您的 iOS 应用程序” - 我点击了一个步骤,上面写着“将下面的初始化代码添加到您的主 AppDelegate 类 "(斯威夫特版本):

import UIKit
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate 

  var window: UIWindow?

  func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)
    -> Bool 
    FirebaseApp.configure()
    return true
  

但是我的 AppDelegate 类已经有了这个代码:

import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate 
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
  ) -> Bool 
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  

不知道该怎么办。我是用 Firebase 提供的代码替换现有代码还是以某种方式协调两者?

【问题讨论】:

【参考方案1】:

在给定的(预定义的)AppDelegate 类中,您需要另外做两件事。 他们是

import Firebase  // <-- 1st add

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate 
    override func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
    ) -> Bool 
        GeneratedPluginRegistrant.register(with: self)

        FirebaseApp.configure() // <-- 2nd add

        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    

【讨论】:

FirebaseApp.configure(),您现在可以安全地删除它,FlutterFire 会自动为您处理。 firebase.flutter.dev/docs/migration/#b-ios-installation【参考方案2】:

将两个代码合并在一起:

import UIKit
import Flutter
import Firebase

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate 
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
    ) -> Bool 
        GeneratedPluginRegistrant.register(with: self)
        FirebaseApp.configure()
        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    

【讨论】:

以上是关于将 Flutter App 的 iOS 部分连接到 Firebase 的困惑的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 应用程序:IOS 模拟器未连接到 Android Studio

Flutter:未连接到 Android Studio 中的 IOS 模拟器

无法从Win Forms C#app连接到远程Node.js Socket.IO服务器

将 Flutter 连接到真实设备中的 localhost 服务器

Facebook无代码事件 - iOS应用程序无法连接到事件管理器

20190415 - iOS11 无法连接到 App Store 的解决办法