没有LOGIN按钮的Firebase匿名身份验证

时间:2018-05-04 21:08:39

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

在我的Android应用程序中,我使用了firebase实时数据库,但是我的数据暴露于世界,因为" read"设置为true。而且似乎只有一种方法可以保护数据:身份验证。但是我的应用并不需要用户登录。所以显示一个LOGIN按钮是没用的,在我的情况下不合适。有没有办法在后台静默(自动)进行身份验证,而用户却没有意识到它?

此外,有没有办法使用相同的ID登录同一个用户,即使他们重新启动应用程序?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

为了能够识别各种用户而无需他们登录,您可以使用Firebase's anonymous authentication。阅读文档了解详细信息,但它可以简单到:

mAuth.signInAnonymously()
     .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInAnonymously:success");
                FirebaseUser user = mAuth.getCurrentUser();
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInAnonymously:failure", task.getException());
                Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
            }

            // ...
        }
    });