【问题标题】:firebase android how to get current user information from database?firebase android如何从数据库中获取当前用户信息?
【发布时间】:2017-05-08 08:16:51
【问题描述】:

我是 firebase 新手,我不知道如何在我的个人资料活动 java 中显示 firebase 当前用户信息,这是我当前的代码

databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            showData(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
private void showData(DataSnapshot dataSnapshot) {
    for(DataSnapshot ds : dataSnapshot.getChildren()){
        DataUser uinfo = new DataUser();

        uinfo.SetName(ds.child(Userid).getValue(DataUser.class).name);
        uinfo.SetDOB(ds.child(Userid).getValue(DataUser.class).name);


    }
}

这是我用于 setter getter 的 dataview java

public class DataUser {

String name, DOB;

public DataUser(){
}

public void SetName(String name){
    this.name = name;
}
public String getName(){
    return name;
}
public void SetDOB(String DOB){
    this.DOB = DOB;
}
public String getDOB(){
    return DOB;
}

}

我的问题是我的代码正确吗?我得到了 name 和 dob 的文本视图,但我不知道如何让它们显示我已经在我的代码中调用的用户信息?

【问题讨论】:

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


【解决方案1】:

您可以像这样从firebaseUser 对象获取用户数据:

FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
    String uid = firebaseUser.getUid();
    String email = firebaseUser.getEmail();
    String name = firebaseUser.getDisplayName();

    editText.setText(name);
}

【讨论】:

  • hmm 我想让当前用户名和 dob 显示在他们自己的edittext中你知道怎么做吗?
  • 请使用:editText.setText(getName(());editText.setText(getDOB());
  • 你搞清楚了吗?
  • 抱歉,回复很长。我尝试将 settext 用于我的代码,但它似乎不起作用。如果我使用你的代码,我不明白我是否需要再次使用数据发布?我似乎无法将 getemail 更改为 getDOB?
  • 请看我更新的答案。您不需要使用dataSnapshot 对象来获取所需的数据。另请参阅offical doc 关于FirebaUser 类。
猜你喜欢
  • 2020-04-15
  • 2017-04-06
  • 2015-02-03
  • 2020-07-29
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多