【问题标题】:React Native Error: No Firebase App '[DEFAULT]' has been created - call firebase.initializeApp()React Native 错误:没有创建 Firebase 应用程序 \'[DEFAULT]\' - 调用 firebase.initializeApp()
【发布时间】:2023-01-20 15:41:50
【问题描述】:

我已经为 android 实现了推送通知,它 100% 正常工作,但是当我打开同一个应用程序来测试 IOS 的推送通知时,它失败了,因为它需要一个配置文件,这是我的配置文件代码:

 import { firebase } from '@react-native-firebase/messaging';
 const reactNativeFirebaseConfig = {
 apiKey: "my apiKey",
 ...
 ...
 measurementId: "my measurementID XYZ"
};
firebase.initializeApp(reactNativeFirebaseConfig);

现在问题是即使将它添加到我的项目中也会出现错误:没有创建 Firebase 应用“[DEFAULT]” - 调用 firebase.initializeApp()

注意:我正在使用“@react-native-firebase/app”;和 '@react-native-firebase/messaging' 用于适用于 Android 的推送通知。任何人都知道我的代码端出了什么问题,或者我应该在哪里使用该配置文件,因为我将该文件保存为 FirebaseConfig.js。

【问题讨论】:

    标签: firebase react-native firebase-cloud-messaging


    【解决方案1】:

    要在 iOS 上设置 Firebase,您需要执行一些额外的步骤。

    打开 Firebase,并创建一个新的 iOS 应用程序。

    填写包标识符并为其指定一个您选择的昵称。

    接下来下载谷歌服务文件并打开 xCode。

    将 Google 服务文件拖到文件树 yourApp/yourApp 中,在 AppDelegate.m 文件旁边。

    打开 AppDelegate.m 并添加

    #import <Firebase.h>
    

    到顶部。

    接下来,在第 58 行左右应该返回 YES。

    将此添加到返回上方

    [FIRApp configure];
    

    最后,在返回和右括号之后,添加此代码。

    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
      [FIRMessaging messaging].APNSToken = deviceToken;
    }
    

    总而言之,它看起来应该与此类似。

      UIViewController *rootViewController = [UIViewController new];
      rootViewController.view = rootView;
      self.window.rootViewController = rootViewController;
      [self.window makeKeyAndVisible];
    
      [FIRApp configure];
    
      return YES;
    }
    
    - (void)application:(UIApplication *)application 
    didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
      [FIRMessaging messaging].APNSToken = deviceToken;
    }
    

    完成后,您应该已准备就绪,可以将第一条消息发送到您的应用程序。

    请记住,Firebase 发送消息的速度不是很快,可能需要几分钟才能完成。

    旁注,您可以将通知发送到 iOS 模拟器,只能是真实设备。您还需要在您的 Apple 开发者帐户和 xCode 中为该应用程序添加通知权限。

    如果您在设置方面需要帮助,请告诉我,我们可以通过 Skype 进行交流。

    【讨论】:

      【解决方案2】:

      您需要在以下文件的方法 didFinishLuanchWithOptions ios/{AppName}/AppDelegate.m 中添加一个检查

      if ([FIRApp defaultApp] == nil) {
       [FIRApp configure]; 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-29
        • 2020-04-30
        • 1970-01-01
        • 2020-05-21
        • 2020-12-24
        • 1970-01-01
        • 2020-12-12
        相关资源
        最近更新 更多