[英]Android studio firebase database retrieve child value for multiple childs
I have a database firebase which stores user data. 我有一个数据库firebase,用于存储用户数据。 I want to display all of the this data as separate textviews in "My Account" fragment.
我想在“我的帐户”片段中将所有这些数据显示为单独的textviews。
I have managed to load the data into the textview but i dont think this is the best way to do it as it requires alot of code for each textView. 我已经设法将数据加载到textview中,但是我不认为这是最好的方式,因为每个textView需要很多代码。
Can you help me out and improve this code, so that i will not have to make new database references for each textView and attach a listener to each. 您能帮我解决问题并改进这段代码吗,这样我就不必为每个textView创建新的数据库引用并将侦听器附加到每个上。
The textViews are; textViews是; Name, Surname, SID, Email and Username
姓名,姓氏,SID,电子邮件和用户名
textViewName = (TextView) v.findViewById(R.id.textViewName);
//code goes here that is not to do with the fargments or in onCreate View
FirebaseUser loggedinFirebaseUser = FirebaseAuth.getInstance().getCurrentUser() ;
String userId = loggedinFirebaseUser.getUid();
//stores the reference as a string to be passed onto the userDataReference table
databaseNameUrlRef = "users/userData" + "/" + userId;
userDataRef = FirebaseDatabase.getInstance().getReference(databaseNameUrlRef + "/name");
//Retrieve all user data and store and display in correct textviews
userDataRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String Name = dataSnapshot.getValue().toString();
textViewName.setText(Name);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Create an User
object. 创建一个
User
对象。
userDataRef = FirebaseDatabase.getInstance().getReference("/users/userData");
userDataRef.addChildEventListener(new ChildEventListener() {
public void onChildAdded(DataSnapshot dataSnapshot, String previousKey) {
User newUser = (User) dataSnapshot.getValue(User.class);
//Now you can assign values to your textview by retrieving userdata from user object
}
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
User user = (User) dataSnapshot.getValue(User.class);
}
public void onChildRemoved(DataSnapshot dataSnapshot) {
//...
}
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
//...
}
public void onCancelled(FirebaseError firebaseError) {
//...
}
});
Hope this helps! 希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.