【问题标题】:Having issues with retrieving user information from firebase android从 firebase android 检索用户信息时遇到问题
【发布时间】:2018-06-10 06:15:13
【问题描述】:

个人资料片段代码

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_profile, container, false);


    Name = (EditText) rootView.findViewById(R.id.Name);
    Email = (EditText) rootView.findViewById(R.id.Email);
    Status = (EditText) rootView.findViewById(R.id.Status);
    Quote = (EditText) rootView.findViewById(R.id.Quote);

    mAuth = FirebaseAuth.getInstance();
    loadUserInformation();
    return rootView;
}

public void loadUserInformation() {

    FirebaseUser user = mAuth.getCurrentUser();

    if (user != null) {
        if (user.getName() != null) {
            Name.setText(user.getName());
        }
        if (user.getEmail() != null) {
            Email.setText(user.getEmail());
        }
        if (user.getStatus() != null) {
            Status.setText(user.getStatus());
        }
        if (user.getQuote() != null) {
            Quote.setText(user.getSQuote());
        }


    }
}

助手类

public class SetUpProfileHelper1 {

public String name;
public String email;
public String status;
public String quote;

public SetUpProfileHelper1(String name, String email, String status, String quote) {
    this.email = email;
    this.name = name;
    this.status = status;
    this.quote = quote;
}

public String getName() {
    return name;
}
public String getEmail() {
    return email;
}
public String getStatus() {
    return status;
}
public String getQuote() {
    return quote;
}

}

首先用户注册。然后被带到 setupprofile 活动,在那里他填写他的详细信息,如姓名、电子邮件等。我在 Firebase 中保存这些数据没有问题。有一个配置文件活动,用户应该能够查看他的详细信息,例如他在注册后提供的姓名、电子邮件。如何从 Firebase 检索数据并将其显示在 EditText 中。请帮忙

【问题讨论】:

    标签: android database firebase firebase-realtime-database information-retrieval


    【解决方案1】:

    假设你的数据库看起来像这样:

    Firebase-root
        |
        --- users
              |
              --- uid1
              |     |
              |     --- //details
              |
              --- uid2
                    |
                    --- //details
    

    请使用以下代码获取所需数据:

    String uid = mAuth.getCurrentUser().getUid();
    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference uidRef = rootRef.child("ref").child(uid);
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                SetUpProfileHelper1 obj = ds.getValue(SetUpProfileHelper1.class);
                Log.d("TAG", obj.getName());
            }
        }
    
        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    uidRef.addListenerForSingleValueEvent(eventListener);
    

    输出将是所有用户的姓名。

    【讨论】:

    • 但是提到的编辑文本在哪里?数据未显示在编辑文本中
    • 我向您展示了如何获取数据。要将数据应用到 EditText,只需用户 setText() 方法。
    猜你喜欢
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2022-01-19
    • 2017-04-26
    相关资源
    最近更新 更多