【发布时间】:2018-12-17 19:34:39
【问题描述】:
我需要从uid 获取一位用户(不是当前用户)的电子邮件地址。我的数据库有一个名为“用户”的孩子,这个孩子有孩子,其中的键是所有用户的 uid。我需要通过他们的 uid 获取其他用户的电子邮件地址。
String uidReceiver = "B53Bk4dtHjZ6a3ZjoO2cEowEf4w2";
DatabaseReference usersRef;
usersRef = FirebaseDatabase.getInstance().getReference().child("users");
// To get the email address of the current user
FirebaseUser userSender = FirebaseAuth.getInstance().getCurrentUser();
String emailSender = userSender.getEmail();
usersRef.child(uidReceiver).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists())
{
// How can I get the email address of uidReceiver
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
谢谢!
【问题讨论】:
-
听起来像一个相当基本的值监听器,如下所述:firebase.google.com/docs/database/android/… 你尝试过了吗?
-
是的,我知道我需要使用监听器,问题是要写什么才能收到电子邮件。我已经用代码更新了帖子
-
您显示的数据库没有用户电子邮件...该数据库中的每个用户对象是否都有包含用户电子邮件的子对象?您能否展开其中一位用户以显示您的数据是如何设置的
-
不,没有孩子包含电子邮件。这些电子邮件只是在 FirebaseAuth 中。我正在寻找不使用特定孩子来获取电子邮件的方法,但如果没有其他方法,我应该将电子邮件保存在“用户”数据库中......
-
使用 Android SDK for Firebase 身份验证确实无法根据其 UID 查找其他用户的电子邮件。不过,可以使用 Firebase Admin SDK,但它适用于受信任的环境(您的开发系统、您控制访问的服务器或 Firebase 的 Cloud Functions)而不是 Android应用程序。
标签: java android firebase firebase-realtime-database