【问题标题】:How to get the email address from uid Firebase database?如何从 uid Firebase 数据库中获取电子邮件地址?
【发布时间】: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


【解决方案1】:

如果你的意思是你想使用他的uid从FirebaseAuth获取用户的电子邮件,那么从android客户端是不可能的。只有 firebase 管理员可以从FirebaseAuth 获取用户的电子邮件,而 android sdk 没有管理员权限。您需要将电子邮件添加到 Firebase 数据库才能获取所需用户的电子邮件。

【讨论】:

  • 如果您觉得这有帮助,请将其标记为正确答案,并提前感谢。
猜你喜欢
  • 1970-01-01
  • 2019-06-04
  • 2023-01-13
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多