从firebase android检索用户信息时遇到问题

问题描述 投票:2回答:1

配置文件片段代码

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个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.