反应本机 firebase getToken() 不工作
React native firebase getToken() not working
刚刚升级到 react native 0.61.5 和 react native firebase (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?
我也检查了权限,设备上的权限是开启的,所以returns正确。
我确实有检查权限的功能,但这是在应用程序中较早完成的,而不是在我正在做的事情上完成的。
async function requestPermissionIfNeeded() {
try {
if (await FCM().hasPermission()) {
return true;
}
await FCM().requestPermission();
return await FCM().hasPermission();
} catch (error) {
return false;
}
}
请像
一样更新 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)
}
}
我们在 iOS 上的最终工作是将 React Native firebase 库更新到 v5.6.0
(因为我们还不能更新到 v6)。
这要求我们根据指南将底层 Podfile Firebase 版本更新为 ~6.13.0
。执行了 pod install
,看起来 getToken
功能又开始工作了。
刚刚升级到 react native 0.61.5 和 react native firebase (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?
我也检查了权限,设备上的权限是开启的,所以returns正确。
我确实有检查权限的功能,但这是在应用程序中较早完成的,而不是在我正在做的事情上完成的。
async function requestPermissionIfNeeded() {
try {
if (await FCM().hasPermission()) {
return true;
}
await FCM().requestPermission();
return await FCM().hasPermission();
} catch (error) {
return false;
}
}
请像
一样更新 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)
}
}
我们在 iOS 上的最终工作是将 React Native firebase 库更新到 v5.6.0
(因为我们还不能更新到 v6)。
这要求我们根据指南将底层 Podfile Firebase 版本更新为 ~6.13.0
。执行了 pod install
,看起来 getToken
功能又开始工作了。