React-Native-Firebase - 未创建 Firebase 应用程序“[DEFAULT]” - 调用 firebase.initializeApp() (在 Android 上,尽管设置正确)

问题描述 投票:0回答:2

React Native 0.71.3 + Typescript。显然,项目也使用了 ProGuard。

我正在尝试通过云消息传递集成推送通知。我只在Android上测试过。

我已完成所需的所有步骤。我错过了什么?

  1. npm install --save @react-native-firebase/app
  2. 将我的 google-services.json 文件放在 /android/app/ 文件夹中
  3. 添加了
    classpath 'com.google.gms:google-services:4.4.0'
    /android/build.gradle
  4. 添加了应用插件:
    'com.google.gms.google-services' 
    at /android/app/build.gradle
  5. npm 安装@react-native-firebase/messaging
  6. npx react-native run-android 重建项目 7)
    import messaging from '@react-native-firebase/messaging';
    在我的App.tsx
  7. 为了测试,我从文档中添加此功能
async function requestUserPermission() {
  const authStatus = await messaging().requestPermission();
  const enabled =
    authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
    authStatus === messaging.AuthorizationStatus.PROVISIONAL;

  if (enabled) {
    console.log('Authorization status:', authStatus);
  }
}
  1. 我在 App.tsx 中的 useEffect() 中调用该函数

然而,尽管采取了所有这些步骤,我还是不断

 Possible Unhandled Promise Rejection (id: 0):
Error: No Firebase App '[DEFAULT]' has been created - call firebase.initializeApp()

我错过了什么?这让我发疯。

android typescript react-native react-native-firebase
2个回答
1
投票

因为你复制的函数是针对iOS的。这需要您为 [FIRApp 配置] 添加进一步的初始化; 对于 Android,请按照指导使用:

import {PermissionsAndroid} from 'react-native';
  PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS);

0
投票

我通过更新 Firebase 的 package.json 依赖项解决了该问题:

"dependencies": {
  "@react-native-firebase/app": "^21.3.0",
  "@react-native-firebase/messaging": "^21.3.0"
}

我在npm网站上找到了最新的兼容版本。

© www.soinside.com 2019 - 2024. All rights reserved.