我想在用户退出后停止接收应用通知。 我想我必须删除react-native-firebase生成的设备令牌,但我找不到任何功能来执行此操作。
有谁知道怎么做?
答案 0 :(得分:3)
你可以这样实现:
import auth from '@react-native-firebase/auth';
import messaging from '@react-native-firebase/messaging';
auth().onAuthStateChanged(user => {
if (!user) // Signed out
messaging().deleteToken();
});
答案 1 :(得分:1)
首先,您不应该在应用内存储Firebase令牌,您应该将其存储在数据库中。 Firebase令牌是通知的设备标识符,如果有人窃取它,他们可能会通过通知轰炸某人。
创建一个API路由,在后端处理注销(例如POST / user / logout),并在该请求中从数据库中删除firebase令牌。
答案 2 :(得分:0)
firebase令牌是每个应用实例的。只要应用程序已安装在设备上,令牌就将保持不变。要删除令牌,您将必须卸载该应用程序。
要解决您的问题,您应该在登录用户注销后使其与令牌分离。您可以通过在用户注销时向服务器发送请求,以更新令牌与用户关联的数据库记录来执行此操作。然后,当新用户登录时,您应该向服务器发送另一个请求,以将令牌与该用户相关联。
答案 3 :(得分:0)
文档不是很好,但是我在v4.3.x
// login
const authorizedEntity = firebase.iid().app.options.messagingSenderId;
firebase.iid().getToken(authorizedEntity).then(token => token);
// logout
const authorizedEntity = firebase.iid().app.options.messagingSenderId;
firebase.iid().deleteToken(authorizedEntity, '*').then(nullToken => nullToken);