【问题标题】:how to get one specific value of all child in Fire base database using Android如何使用 Android 获取 Firebase 数据库中所有子项的一个特定值
【发布时间】:2023-03-22 15:08:01
【问题描述】:

我想从我的 Firebase 数据库中获取所有名称,这是我的代码 sn-p。

databaseRef.child('Users').addValueEventListener(new ValueEventListener() {

@Override
public void onDataChange (DataSnapshot dataSnapshot) {

  //
  }
}

@Override
public void onCancelled (DatabaseError databaseError) {

} };);

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    查询Users的所有节点:

    databaseRef.child('Users').addValueEventListener(new ValueEventListener() {
    
        @Override
        public void onDataChange (DataSnapshot dataSnapshot) {
    
          for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
             // parse the snapshot to your local model
             User user = postSnapshot.getValue(User.class);
    
             // access your desired field
             String name = user.getName();
          }
        }
    
        @Override
        public void onCancelled (DatabaseError databaseError) {
    
        }
      };
    );
    

    【讨论】:

    • 谢谢它对我有帮助:)
    【解决方案2】:

    试试下面的代码...其中 UserDetails 是一个 POJO 类

    datbabseref = FirebaseDatabase.getInstance().getReference().child("Users");    
    
    
    databaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                try {
                    parkingList.clear();
                    for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                        STSParkingDetails post = postSnapshot.getValue(UserDetails.class);
                        UserDetails.class userDetails = new UserDetails.class(post.getName(),post.getAge(),post.getEmail(),post.getPhone());
                        parkingList.add(stParkingDetails);
                    }
                    saveParkingLocation();
                } catch (Exception e) {
                    Log.e(TAG, "Exception e = " + e.getLocalizedMessage());
                }
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
                Log.d(TAG, databaseError.toString());
            }
        });
    

    【讨论】:

    • 你能解释一下这条线的工作原理吗? STSParkingDetails post = postSnapshot.getValue(UserDetails.class);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2018-05-17
    • 1970-01-01
    • 2020-06-06
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多