使用Firebase进行身份验证

问题描述:

对不起,如果这是一个简单的问题..但我似乎无法找到一个好的答案。使用Firebase进行身份验证

我想实现一个匿名登录,用户只需登录他们的设备。我猜测跨iOS和Android的设备没有唯一的ID ..所以我想我必须手动生成一个ID,然后看看它是否已经在使用,然后是否重新生成。有这样的解决方案吗?我的解决方案似乎真的哈克......

我现在的想法,逻辑明智,那就是:

  • 生成唯一的ID
  • 查询数据库,看看是否唯一ID已在使用
  • 如果是重复前两个步骤
  • 如果没有推高

我需要能够跟踪推什么设备什么样的信息给databa se,但我不想让用户必须登录或提供任何信息。

这听起来像您正在寻找Firebase的匿名身份验证。用户启动应用程序的第一次,你在再签收:

FirebaseAuth.getInstance().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(); 
       updateUI(user); 
      } 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(); 
       updateUI(null); 
      } 

      // ... 
     } 
    }); 

这对他们来说并存储生成一个唯一的UID,在您的应用程序的共享偏好。

他们下一次启动应用程序,其用户信息被读取,你可以检测到用户使用:

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser(); 
updateUI(currentUser); 

见获取更多信息Firebase Authentication documentation。这也可在iOS