gpt4 book ai didi

java - 从 Firebase 实时数据库、Android Studio、Java 获取数据

转载 作者:行者123 更新时间:2023-11-30 05:07:48 25 4
gpt4 key购买 nike

我正在寻找一种方法,以数组 [] 或字符串等格式从 firebase 实时数据库获取数据。

我的数据库是这样的: Link to image of database

或者:数据库
|
--> 用户
|
-->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) {
}
});

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

我建议你只在回调中使用列表,否则它将是空的。如果你想在 onDataChange() 方法之外使用它,我建议你从这个 post 中看到我的答案的最后一部分。 我在其中解释了如何使用自定义回调来完成。你也可以看看这个 video 以便更好地理解。

关于java - 从 Firebase 实时数据库、Android Studio、Java 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54244973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com