【发布时间】:2019-12-27 22:55:17
【问题描述】:
我不知道如何将新的 FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener 实现到我自己的代码中,以便我可以检索令牌并将其保存到数据库中以使用 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”声明为全局,则不允许,因为它需要声明为 final。
谢谢!
【问题讨论】:
-
令牌首次可用时在 OnSuccessListener 回调中执行数据库操作。
-
看看这个
https://stackoverflow.com/a/65088085/7436566
标签: android firebase firebase-cloud-messaging