React native firebase getToken() 不起作用



刚刚升级到反应原生 0.61.5 和反应原生火力基地 (v5.5.7(getToken()函数似乎没有运行,或者它似乎只是挂在await上。

我有这个功能:

async function updatePushNotificationsEnabled(isEnabled: boolean) {
return updateUser({ pushNotificationsEnabled: isEnabled, firebaseId: await getToken() })
}

这反过来又在调用:

async function getToken() {
try {
return FCM().getToken();
} catch (error) {
return undefined;
}
}

如果我按照 https://rnfirebase.io/docs/v5.x.x/messaging/device-token 我似乎无法从服务器取回令牌。如果我尝试console.log(await getToken())我在控制台中没有得到任何东西。如果我console.log(FCM().getToken()),我会在控制台中得到承诺。我做错了什么?还是我需要升级到最新版本的 React Native Firebase?

我还检查了权限,并且设备上的权限已打开,因此返回 true。

我确实有一个检查权限的功能,但这是在应用程序前面完成的,而不是在我正在做的事情上完成的。

async function requestPermissionIfNeeded() {
try {
if (await FCM().hasPermission()) {
return true;
}
await FCM().requestPermission();
return await FCM().hasPermission();
} catch (error) {
return false;
}
}

最终在iOS上为我们工作的是将反应原生Firebase库更新为v5.6.0(因为我们还没有能够更新到v6(。

这要求我们按照指南将底层 Podfile Firebase 版本更新为~6.13.0。做了一个pod install,看起来getToken功能又开始工作了。

请更新request((&&getToken((函数,如

async requestPermission() {
try {
await firebase.messaging().requestPermission();
this.getToken();
} catch (error) {
alert('permission rejected');
}
}
async getToken() {
let fcmToken = await AsyncStorage.getItem('device_token');
if (!fcmToken) {
fcmToken = await firebase.messaging().getToken();
if (fcmToken) {
await AsyncStorage.setItem('device_token', fcmToken);
}
} else {
// do some work
console.log('Device_token')
console.log(fcmToken)
}
}

相关内容

  • 没有找到相关文章

最新更新