我想在我的React Native应用程序中添加推送通知,但是我需要澄清一下,因为整个网络上有关该主题的信息和实现都有很多。
当前,我的应用正在与node.js后端通信。因此,我已经使用Firebase Web SDK来向应用程序客户端发送推送通知。
现在是时候将应用程序客户端注册到Firebase Cloud Messaging,以获取令牌并将其与用户相关的数据一起保存。然后能够向特定用户发送定向通知(node.js后端角色)。
我已阅读使用 react native firebase 库,尤其是使用消息传递模块来完成此任务。
遵循该Device registration token教程,这很清楚。但是,请求令牌的最佳位置在哪里?我认为应该是用户登录到应用程序的时间,但是我们不确定是否准时获取令牌...
使用该代码,我们可以检索现有令牌:
firebase.messaging().getToken()
.then(fcmToken => {
if (fcmToken) {
// user has a device token
} else {
// user doesn't have a device token yet
}
});
如果我是对的,请告诉我: 我知道,如果应用程序实例已具有令牌,就可以获取它,现在该将它与数据库中与用户相关的数据相关联了。但是,如果没有,我就需要使用那个来监听新令牌:
componentDidMount() {
this.onTokenRefreshListener =
firebase.messaging().onTokenRefresh(fcmToken => {
// Process your token as required
});
}
componentWillUnmount() {
this.onTokenRefreshListener();
}
但是我应该从哪里开始收听呢?在登录组件上?如果用户在获取令牌之前登录并导航到另一个组件,那么将卸载登录组件。会还在听吗?然后我需要使用令牌更新用户数据吗?
或者只是当用户登录时,我需要等到获取令牌后才能导航到另一个组件?