用户注销 React Native 应用程序时如何删除 Firebase Cloud Messaging Token?

How to delete Firebase Cloud Messaging Token when user Log-Out of the React Native application?

我使用 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()
  }

谢谢。

只需在注销函数中添加以下给定代码即可。

firebase.messaging().deleteToken()
await firebase.messaging().deleteToken();

是解决方案。

但是,如果您在删除后仍获得相同的令牌,请安装 npm 包 react-native-restart,然后执行以下步骤以获取新令牌

messaging()
            .deleteToken(undefined,'*')
            .then(() => {
                RNRestart.Restart();

安装 npm 包 react-native-restart 并像这样简单地调用 :-

const logoutAndClearAsyncStorage = async () => {
  try {
    await AsyncStorage.clear()
    await firebase.messaging().deleteToken().then(() => {
      RNRestart.Restart()
      navigation.replace('LoginStack', { screen: 'WelcomeScreen' });
    })
  } catch (error) {
    console.log(error, 'logout')
  }
};

希望对您有所帮助。