有什么方法无需登录即可获取Firebase Auth UID?

时间:2019-06-27 12:00:35

标签: firebase web firebase-authentication

我想知道的是无需登录即可从Firebase获取身份验证用户UID 该已经注册的用户

我已经阅读了Firebase文档,但是所有的解释都集中在仅当用户当时登录时才能获得UID的情况。

但是我只想获取UID和用户电子邮件地址而无需登录 有什么办法吗?

4 个答案:

答案 0 :(得分:1)

不是,无法使用Firebase身份验证来检索uidemail,因为该用户当前尚未登录。

实际检索它们的唯一另一种方法是使用firebase数据库。因此,当用户在您的应用程序中注册时,您还可以将用户的数据发送到数据库,这样即使用户未登录也可以稍后检索数据。

例如(在注册时)您可以将数据发送到数据库:

users
    userId
       email : email_here
       name  : name_here

答案 1 :(得分:1)

您的问题不清楚。

如果知道用户的凭据,则可以通过Admin SDK创建用户。您也可以使用Admin SDK通过电子邮件或uid查找现有用户的信息。

official docs了解更多信息。

答案 2 :(得分:0)

您可以应用技巧来做到这一点。虽然这不是最佳解决方案。
您必须记住一件事,“没有登录就无法获取UID”。

  1. 使用您的虚拟电子邮件和密码从后端创建一个虚拟用户。
  2. 将电子邮件和密码从后端发送到您的客户端应用。如果您要提供额外的安全层,则始终可以对密码进行哈希处理。
  3. 现在从firebase SDK中调用signInWithEmailAndPassword函数,并提供来自后端的电子邮件和密码。
  4. 该用户已经在后端注册,因此现在您可以从客户端应用中获取UID

答案 3 :(得分:0)

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();
                
                Log.d("userstatus","user id is "+user.getUid());
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInAnonymously:failure", task.getException());
               
            }

            // ...
        }
    });