Joc*_*der 3 java android firebase firebase-realtime-database
我正在寻找一种方法以数组 [] 或字符串等格式从 firebase 实时数据库获取数据。
我的数据库看起来像这样: 链接到数据库的图像
或者:
Database
|
-->Users
|
-->UID1
-->UID2
这是数据库的根目录,我想获取“用户”子项中所有 UID 的列表。这是我到目前为止的代码并且有点卡住了:
DatabaseReference databaseReference = firebaseDatabase.getReference("Users");
databaseReference.addValueEventListener(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String UIDs = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Run Code Online (Sandbox Code Playgroud)
我对 java、android studio 和 firebase 有点菜鸟。我试图以我知道如何使用的格式获取数据,例如字符串或字符串数组 []。如果其他人可能问过同样的问题,我环顾四周,但我可以得到这些问题的答案/不理解它们。在此先感谢您的时间!
要获取 uid 列表,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("Users");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String uid = ds.getKey();
list.add(uid);
}
//Do what you need to do with your list
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
usersRef.addListenerForSingleValueEvent(valueEventListener);
Run Code Online (Sandbox Code Playgroud)
我建议您仅在回调中使用该列表,否则它将为空。如果您想在onDataChange()方法之外使用它,我建议您从这篇文章中查看我的 anwser 的最后一部分,其中我解释了如何使用自定义回调来完成。您也可以观看此视频以更好地理解。
| 归档时间: |
|
| 查看次数: |
4484 次 |
| 最近记录: |