我已经为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";以及适用于Android的推送通知的"@react native firebase/messaging"。任何人都知道我的代码端出了什么问题,或者我应该在哪里使用该配置文件,因为我将该文件保存为FirebaseConfig.js.
要在iOS上设置Firebase,您需要执行一些额外的步骤。
打开Firebase,创建一个新的iOS应用程序。
填写捆绑包标识符,并给它一个您选择的昵称。
接下来下载谷歌服务文件并打开xCode。
将Google Services文件拖到文件树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。
您需要在以下文件的方法didFinishLuachWithOptions ios/{AppName}/AppDelegate.m 中添加一个检查
if ([FIRApp defaultApp] == nil) {
[FIRApp configure];
}