无法解析符号“FirebaseInstanceId”

新手上路,请多包涵

我正在尝试使用 FirebaseInstanceId 但不断收到错误

“无法解析符号 FirebaseInstanceId”。

模块 gradle 包括

dependencies {
    compile 'com.google.firebase:firebase-messaging:+'
    compile 'com.google.firebase:firebase-iid:+'
}

com.google.firebase.iid 上唯一存在的似乎是 .zzb。我错过了什么吗?

原文由 wazzaday 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 571
2 个回答

确保你拥有所有这些

 implementation 'com.google.firebase:firebase-core:17.2.1'

 implementation 'com.google.firebase:firebase-messaging:20.0.0'
 implementation 'com.google.firebase:firebase-auth:19.1.0' // not necessary(required for signout and sign in)

只需要这么多。

原文由 Santanu Sur 发布,翻译遵循 CC BY-SA 4.0 许可协议

老问题但仍然相关,所以这里有一个更新的答案:截至目前(2020 年 9 月)只有 implementation 'com.google.firebase:firebase-messaging:20.2.4' 在你的 app/build.gradle 文件中是必需的(参见参考的官方文档)。

为了进一步添加我在研究如何为 Android 实现推送通知时在其他地方很难找到的信息:

我假设您正在使用 FirebaseInstanceId 检索由 Firebase 创建的实例 ID 令牌并遵循指南(请参阅链接文档)。如果您的主要目标是实现推送通知并且您使用的是 React Native,我发现您不需要创建扩展 FirebaseMessagingService 的 MyFirebaseMessagingService - 您可以实现库 react-native-firebase/app 和 react-native- firebase/messaging 访问客户端应用程序中的令牌。

安装 @react-native-firebase/app@react-native-firebase/messaging 然后在你的前端 App.js 中: import messaging from '@react-native-firebase/messaging';

 async function requestUserPermission() {
  const getFcmToken = async () => {
    const fcmToken = await messaging().getToken();
    if (fcmToken) {
      console.log(fcmToken);
      console.log('Your Firebase Token is:', fcmToken);
    } else {
      console.log('Failed', 'No token received');
    }
  };
  const authStatus = await messaging().requestPermission();
  const enabled =
    authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
    authStatus === messaging.AuthorizationStatus.PROVISIONAL;

  if (enabled) {
    getFcmToken();
    console.log('Authorization status:', authStatus);
  }
}
requestUserPermission();

我确定这可以重构,请提出修改建议 :)

官方文档 Firebase

反应本机 Firebase 库

原文由 Pia 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题