具有匿名用户身份验证的Firebase数据库

时间:2017-08-23 13:42:01

标签: android firebase firebase-realtime-database firebase-authentication

我正在使用Firebase数据库,我想存储用户数据。 我现在不想强迫用户使用Google帐户登录,因此我添加了Firebase匿名身份验证。身份验证工作正常,但是当我卸载并重新安装应用程序时,uid每次都会更改。存在某种方式让设备生成uid?如果每次用户卸载/重新安装应用程序生成新用户时,此功能的用途是什么?我知道它也存在getProviderId()方法,但在这种情况下为null。

这是我的代码:

public synchronized void getAnonymousUser(final OnAuthListener onAuthListener){

    if(onAuthListener == null){

        throw new IllegalArgumentException("listener cannot be null");
    }

    FirebaseUser currentUser = this.mAuth.getCurrentUser();
    if(currentUser != null){

        onAuthListener.getAnonymousUser(currentUser);
        return;
    }

    this.mAuth.signInAnonymously().addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {

            if(task.isSuccessful()){

                onAuthListener.getAnonymousUser(mAuth.getCurrentUser());
            }else {

                onAuthListener.onError(new Exception("signInAnonymously no user exception"));

            }

        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {

            onAuthListener.onError(e);
        }
    });
}

0 个答案:

没有答案