作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道如何将新的 FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener 实现到我自己的代码中,以便我可以检索 token 并将其保存到数据库中以使用 FCM 并识别每个用户。
实际上我有以下代码:
if (task.isSuccessful()) {
final String deviceToken = FirebaseInstanceId.getInstance().getToken();
Map<String, Object> createUser = new HashMap<>();
createUser.put("name", name);
createUser.put("email", email);
createUser.put("device_token", deviceToken);
Ref.child("Users").child(task.getResult().getUser().getUid()).updateChildren(createUser);
根据实际的firebase说明,我应该修改如下:
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(MainActivity.this, new OnSuccessListener<InstanceIdResult>(){
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String deviceToken = instanceIdResult.getToken();
Log.e("newToken", deviceToken);
}
});
Map<String, Object> createUser = new HashMap<>();
createUser.put("name", name);
createUser.put("email", email);
createUser.put("device_token", deviceToken);
Ref.child("Users").child(task.getResult().getUser().getUid()).updateChildren(createUser);
但我不知道如何从该方法中获取 deviceToken 字符串,我应该将它保存到共享首选项然后从那里检索它吗?
因为如果我想将“deviceToken”声明为全局的,则不允许,因为它需要声明为最终的。
谢谢!
最佳答案
已弃用,在 gradle 更新实现中 'com.google.firebase:firebase-messaging:21.0.0'使用下面的代码:
FirebaseMessaging.getInstance().getToken().addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if (!task.isSuccessful()) {
return;
}
// Get new FCM registration token
String token= task.getResult();
}
});
关于android - FirebaseInstanceId.getInstance().getToken() 弃用了如何在数据库中保存 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59506765/
我是一名优秀的程序员,十分优秀!