我创建了一个Firebase应用。
有没有办法通过Uid
获取用户电子邮件而无需登录该应用程序?
答案 0 :(得分:2)
用户无需登录即可根据userid
要获得uid,您需要这样做:
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();
根据文件:
public FirebaseUser getCurrentUser ()
返回当前已登录的FirebaseUser,如果没有,则返回null。
更多信息:
答案 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);
});