从Firebase Android检索用户信息时遇到问题



配置文件片段代码

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;
}
}

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

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

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);

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

最新更新