用户注销 React Native 应用程序时如何删除 Firebase 云消息传递令牌?
Posted
技术标签:
【中文标题】用户注销 React Native 应用程序时如何删除 Firebase 云消息传递令牌?【英文标题】:How to delete Firebase Cloud Messaging Token when user Log-Out of the React Native application? 【发布时间】:2020-06-03 10:04:14 【问题描述】:我使用 React Native FCM 进行消息传递,当用户注销应用程序时,我想删除 FCM 令牌,这样用户就不会再次收到通知。
以下是我的注销代码。
_signOutAsync = async () =>
this.logoutEvent()
API.post('customer/auth/logout', null,
headers:
Authorization:
'Bearer ' + (await AsyncStorage.getItem(Config.ACCESS_TOKEN))
).then((response) =>
console.log(response)
)
this.clearData()
谢谢。
【问题讨论】:
【参考方案1】:只需在您的注销功能中添加以下给定代码。
firebase.messaging().deleteToken()
【讨论】:
这不起作用,因为即使在删除令牌后它会再次生成相同的 FCM 令牌。 如果您遇到这个问题,请参考我的解决方案。 这对我不起作用,在 deleteToken 之后,登录并调用 getToken 不会让您重新登录。相反,使用 unregisterDeviceForRemoteMessages / registerDeviceForRemoteMessages 有效。见rnfirebase.io/reference/…【参考方案2】:await firebase.messaging().deleteToken();
是解决方案。
但是,如果删除后仍然得到相同的令牌,请安装 npm 包react-native-restart
,然后执行以下步骤以获取新令牌
messaging()
.deleteToken(undefined,'*')
.then(() =>
RNRestart.Restart();
【讨论】:
以上是关于用户注销 React Native 应用程序时如何删除 Firebase 云消息传递令牌?的主要内容,如果未能解决你的问题,请参考以下文章
当用户在 react-native 应用程序中注销时,选项卡导航器不会重置
如何在 React Native 中的 setState 之前停止执行
React Native:登录或注销时如何以编程方式刷新应用程序?