我不是android开发人员(我是后端开发人员)我尝试在android项目中使用FCM(Firebase Cloud Messages)。
我有下一个问题:成功之后,我需要接收FCM令牌并将其添加到用户个人资料中。但令牌异步接收并在服务中。
我阅读了很多文章和文档,但我不明白它是如何工作的。在所有文章中,我都看到这样的例子:
在official documentation我看到了这个:
没有人不写我怎么能实现这个方法:
sendRegistrationToServer(refreshedToken);
我faund this answer但作者写道:
if(userId != 0){
// Implement code to update registration token to server
}
如何实现代码更新注册令牌到服务器???
next answer在这个问题中,这是我发现的最详细的内容。但仍然不明白如何实现我的逻辑?
我的逻辑:
如果authToken!= null - >打开MainActivity
无限期地,我可以onTokenRefresh
方法接收FCM令牌。
sended == false
将它保存到sharedPreferences。但我什么时候发送呢?您下次尝试登录该应用程序时?然后我在应用程序周围散布了几个地方,并进行了一系列检查。当我尝试登录时,我需要检查发送的是真还是假,如果是假,我怎么能用登录名和密码或其他请求发送令牌? 答案 0 :(得分:0)
您无法确定令牌何时刷新。您需要做的就是在uId节点下的某个地方写入令牌。
答案 1 :(得分:-1)
在你的onTokenRefresh()中,在sharedpreferences上保存令牌,如下所示:
SharedPreferences sharedPreferences = getApplicationContext()。getSharedPreferences(getString(R.string.your_app_nam),Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(的getString(R.string.fcm_token),your_refreshed_token); editor.commit();
然后在您的登录请求中,您可以获得如下标记:
SharedPreferences sharedPreferences = getApplicationContext()。getSharedPreferences(getString(R.string.your_app_nam),Context.MODE_PRIVATE); String fcmToken = sharedPreferences.getString(getString(R.string.your_refreshed_token),"");
我希望它可以帮到你。