【问题标题】:error: no such module 'FirebaseInstanceID' on ios错误:ios 上没有这样的模块“FirebaseInstanceID”
【发布时间】:2021-08-04 22:12:09
【问题描述】:

我正在尝试运行我的代码并不断告诉我

error: no such module 'FirebaseInstanceID'
    import FirebaseInstanceID

我在 AppDelegate.swift 中的代码

import UIKit
import Flutter

import Firebase
import FirebaseAuth
import UserNotifications
import FirebaseInstanceID

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
  
   override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        let firebaseAuth = Auth.auth()
        firebaseAuth.setAPNSToken(deviceToken, type: AuthAPNSTokenType.unknown)

    }
    override func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        let firebaseAuth = Auth.auth()
        if (firebaseAuth.canHandleNotification(userInfo)){
            print(userInfo)
            return
        }
    
    }
}

我认为我的 pod 中丢失了,我不知道如何将它安装到我的 pod 文件中。

【问题讨论】:

    标签: swift firebase flutter dart firebase-authentication


    【解决方案1】:

    FirebaseInstanceID 现在已弃用,这就是出现此错误的原因。从您的 AppDelegate.swift 中删除 import FirebaseInstanceID 并改为添加 import FirebaseMessaging,因为现在直接在消息传递实例上提供 FCM 令牌。现在将didRegisterForRemoteNotificationsWithDeviceTokenInstanceID的代码替换成这个

    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        Messaging.messaging().apnsToken = deviceToken
        Messaging.messaging().token { (token, error) in
            if let error = error {
                print("Error fetching remote instance ID: \(error.localizedDescription)")
            } else if let token = token {
                print("Token is \(token)")
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      2021 年 7 月 19 日更新

      删除 FirebaseInstanceID 并安装 Firebase Messaging 最新版本..

      我稍后通过安装 Firebase 消息传递插件

      解决了这个问题

      Firebase messaging Plugin

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 2016-01-04
        • 2015-11-12
        • 1970-01-01
        • 1970-01-01
        • 2021-02-10
        • 1970-01-01
        相关资源
        最近更新 更多