简体   繁体   English

Android Studio Firebase数据库检索多个子项的子项值

[英]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) {

       }
   });

This is the database 这是数据库

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.

相关问题 如何在firebase数据库中检索特定孩子的数据 - android studio/java? - How to retrieve data for a specific child in firebase database - android studio/ java? android studio 只检查和检索 firebase 数据库中的最后一个添加值 - android studio only checks and retrieve the last added value in firebase database Android,Firebase-尝试检索多个子节点时,数据库仅将单个子节点作为字符串返回 - Android, Firebase - database only returns single child node as string when trying to retrieve multiple child nodes Firebase 实时数据库 - 检索数据 Android Studio - Firebase Realtime Database - retrieve data Android Studio 如何在 android 工作室中从 firebase 检索多个子节点 - How to retrieve mulitple child nodes from firebase in android studio Android Firebase数据库如何从子节点检索所有数据 - android firebase database how to retrieve all data from child node 将子节点 Firebase 数据库 Android 检索到单独的变量中? - Retrieve child nodes Firebase Database Android into separate variables? Android Firebase - 从 Firebase 实时数据库中检索特定值 - Android Firebase - retrieve particular value from Firebase realtime database Android Studio Firebase数据库查询所选值 - Android studio Firebase database queries selected value 从多个孩子中检索同一个孩子 Android Firebase - Retrieve the same child from multiple children Android Firebase
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM