我尝试使用react native基本消息和react native-push通知库获取android设备令牌来发送推送通知:
我在AndroidManifest.xml中添加了配置:
...
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<!-- < Only if you are using GCM or localNotificationSchedule() > -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<!-- < Only if you are using GCM or localNotificationSchedule() > -->
...
在我的App.js 中
// ----- COMPONENT DID MOUNT ---- //
async componentDidMount() {
// ====================================================== //
// ====================================================== //
// ====================================================== //
const granted = messaging().requestPermission();
if (granted) {
console.log('User granted messaging permissions!');
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
firebase
.messaging()
.getToken()
.then((fcmToken) => {
if (fcmToken) {
// user has a device token
console.log('-------- FCM TOKEN -------');
console.log(fcmToken);
console.log(JSON.stringify(fcmToken));
this._setItem(fcmToken);
} else {
// user doesn't have a device token yet
console.log('error');
}
});
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
} else {
console.log('User declined messaging permissions :(');
}
// ====================================================== //
// ====================================================== //
// ====================================================== //
}
// ----- FIN COMPONENT DID MOUNT ---- //
我得到了:
可能未处理的承诺拒绝(id:0(:
错误:[消息传递/未知]FIS_AUTH_Error
NativeFirebaseError:[消息传递/未知]FIS_AUTH_ERROR
在Google云控制台中,确保来自Google-services.json的API密钥包括以下权限:
- Firebase云消息API
- Firebase装置API
我在更新google-services.json文件时也出现了同样的问题。我删除了";构建";项目中的文件夹以及应用程序文件夹,然后重新运行应用程序,问题就解决了。
我通过再次下载google-services.json文件并用旧文件替换它来修复它。