无需登录应用Firebase即可从Uid获取用户电子邮件

时间:2018-03-31 16:07:56

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

我创建了一个Firebase应用。

有没有办法通过Uid获取用户电子邮件而无需登录该应用程序?

4 个答案:

答案 0 :(得分:2)

用户无需登录即可根据userid

检索其信息

要获得uid,您需要这样做:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();

根据文件:

  

public FirebaseUser getCurrentUser ()

     

返回当前已登录的FirebaseUser,如果没有,则返回null。

更多信息:

https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuth.html#getCurrentUser()

答案 1 :(得分:1)

当然可以使用Firebase Cloud Functions。您可以编写一个云函数,它将通过UID param返回用户邮件:)不需要firebase身份验证,简单而且非常棒。这是一个简短的例子:

const admin = require('firebase-admin');
exports.getUserMail = functions.https.onRequest((req, resp) => {
    admin.auth().getUser(req.query.uid)
}

答案 2 :(得分:0)

如果没有登录,则无法进行。出于安全原因,您的电子邮件地址和密码与用户数据分开存储。见下文:

How do I return a list of users if I use the Firebase simple username & password authentication

答案 3 :(得分:0)

使用Firebase管理SDK。您可以通过uid,电子邮件或电话号码查找用户: https://firebase.google.com/docs/auth/admin/manage-users#retrieve_user_data

admin.auth().getUser(uid)
  .then(function(userRecord) {
    console.log(userRecord.email);
  })
  .catch(function(error) {
    console.log("Error fetching user data:", error);
  });
相关问题