gpt4 book ai didi

android - FirebaseInstanceId.getInstance().getToken() 弃用了如何在数据库中保存 token

转载 作者:行者123 更新时间:2023-11-30 04:54:13 24 4
gpt4 key购买 nike

我不知道如何将新的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com