使用单个电子邮件ID

时间:2017-01-12 07:57:48

标签: android firebase firebase-authentication

我有一个使用基于电子邮件的身份验证访问Firebase数据库和存储的应用。是否可以为使用我的应用程序的所有用户使用单个电子邮件ID /密码?电子邮件ID和密码在下面显示的方法中进行编码,该方法是从onCreate调用的。使用一个设备进行测试时,此工作正常。我在不同的API版本上尝试使用不同的Android设备时,虽然不一致但我看到了身份验证问题。我只想排除使用单个电子邮件ID / passwd从不同设备访问应用程序/数据库有任何限制吗?

mAuth.signInWithEmailAndPassword("email ID", "password")
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
  public void onComplete(@NonNull Task<AuthResult> task)     {
  System.out.println("AUTH signInWithEmail:onComplete:" + task.isSuccessful());

  if (!task.isSuccessful()) {
  System.out.println("AUTH signInWithEmail:failed" + task.getException());
     }
   }
 });

1 个答案:

答案 0 :(得分:2)

而不是硬编码用户ID /密码。我建议您使用 Firebase匿名帐户。将来,当您添加对Gmail,Facebook,Twitter等其他Auth提供商的支持时。等等;您可以将他们的匿名帐户与登录凭据相关联。

将匿名帐户转换为永久帐户非常容易

请参阅以下有关匿名帐户的更多详情,
https://firebase.google.com/docs/auth/android/anonymous-auth

  

您可以使用Firebase身份验证来创建和使用临时身份验证   要使用Firebase进行身份验证的匿名帐户。这些暂时的   匿名帐户可用于允许尚未签名的用户   由您的应用程序来处理受安全规则保护的数据。如果   匿名用户决定注册您的应用,您可以链接他们的   登录匿名帐户的凭据,以便他们可以继续   在未来的会议中使用受保护的数据。

mAuth.signInAnonymously()
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                Log.d(TAG, "signInAnonymously:onComplete:" + task.isSuccessful());

                // If sign in fails, display a message to the user. If sign in succeeds
                // the auth state listener will be notified and logic to handle the
                // signed in user can be handled in the listener.
                if (!task.isSuccessful()) {
                    Log.w(TAG, "signInAnonymously", task.getException());
                    Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
                }

                // ...
            }
        });

希望有所帮助!