为了账号安全,请及时绑定邮箱和手机立即绑定

如何在每个用户的 firebase android 中创建唯一的令牌?

如何在每个用户的 firebase android 中创建唯一的令牌?

阿晨1998 2021-09-26 14:25:10
我想在每次用户登录时生成和存储令牌。我尝试了下面的代码,但是当我使用另一个帐户登录时,它总是生成相同的令牌。mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {                    @Override                    public void onComplete(@NonNull Task<AuthResult> task) {                        AlertDialog.dismiss();                        if (!task.isSuccessful()) {                            if (password.length() < 6) {                                new SweetAlertDialog(LoginActivity.this, SweetAlertDialog.ERROR_TYPE)                                        .setTitleText("Oops...")                                        .setContentText("Enter minimum 6 charachters !! ")                                        .show();                            } else {                                passwordInput.setText("");                                new SweetAlertDialog(LoginActivity.this, SweetAlertDialog.ERROR_TYPE)                                        .setTitleText("Oops...")                                        .setContentText("Authentication failed !!")                                        .show();                            }                        } else {                            Intent intent = new Intent(LoginActivity.this, MainActivity.class);                            startActivity(intent);                            FirebaseUser users = FirebaseAuth.getInstance().getCurrentUser();                            DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("users/"+ users.getUid());                            String token = FirebaseInstanceId.getInstance().getToken();                            Log.e("tokenid",""+token);                            mDatabase.child("token_id").setValue(token);                            finish();                        }                    }                });            }        });请帮忙,谢谢。。
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

使用以下代码行时:

String token = FirebaseInstanceId.getInstance().getToken();

您将FCM token在客户端获取 Firebase 实例 ID 令牌,也称为。您需要知道在 Firebase 中有两种不同的令牌:

  1. FCM 令牌/实例 ID 令牌,用于标识特定用户设备上特定应用程序的安装。它不会以任何方式识别特定用户。

  2. Auth ID 令牌标识特定应用程序的特定用户。它不会以任何方式识别特定设备。

这两个令牌完全不同,用于不同的目的。

用户的身份将被无限期地记住(或直到您退出)。但是他们的凭据(或者更确切地说,他们的令牌是否仍然有效)每小时都会重新检查一次。


查看完整回答
反对 回复 2021-09-26
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

FCM 会为客户端应用程序实例生成一个注册令牌,因此您可能会为应用程序中的不同用户获得相同的令牌。您可以使用 forceRefresh 每次生成新令牌。每次用户登录到任何设备时注册新令牌并将其保存在数据库中并在新登录时使用新令牌更新,这样每次登录时每个用户都会有一个新令牌(如果这符合您的要求)



查看完整回答
反对 回复 2021-09-26
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

用 UUID.randomUUID().toString()

您可以在此处阅读更多内容。

java 文档- 和这里 =)


查看完整回答
反对 回复 2021-09-26
  • 3 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号