gpt4 book ai didi

java - arrayList 是空的 Firebase 数据库

转载 作者:行者123 更新时间:2023-12-02 01:10:10 24 4
gpt4 key购买 nike

我已经看到了几个与此相关的答案,但在一周内无法弄清楚如何做到这一点。数组列表为空我尝试使用查询,使用该函数,但无法获得任何简单或更好的工作解决方案

mUserDatabase=FirebaseDatabase.getInstance().getReference().child(uid).child("Medicines");

mUserDatabase.addValueEventListener(new ValueEventListener() {

@Override
public void onDataChange(DataSnapshot dataSnapshot) {

for (DataSnapshot childDataSnapshot : dataSnapshot.getChildren()) {

for (DataSnapshot childDataSnapshot2 : childDataSnapshot.getChildren()) {
//GET MEDICINE NAME
arrayList.add(childDataSnapshot2.getKey());

}}

@Override
public void onCancelled(DatabaseError databaseError) {}});

enter image description here

最佳答案

要从数据库架构中获取键和值,请使用以下代码行:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference medicinesRef = rootRef.child(uid).child("Medicines");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String key = ds.getKey();
String altisgpt = ds.child("ALTISGPT").getValue(String.class);
Log.d(TAG, key + " -> " + altisgpt);
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
medicinesRef.addListenerForSingleValueEvent(valueEventListener);

logcat 中的输出将是:

2019-1-27 -> 72 u/L

同理,也可以获取其他属性的值。除此之外,您可以使用相同的属性创建一个 Medicine (POJO) 类,将 Medicines 下的每个节点映射到 Medicine 类型的对象。通过这种方式,您可以简单地创建一个 Medicine 对象列表并根据需要使用它。也请不要忘记检查我在以下帖子中的回答:

关于java - arrayList 是空的 Firebase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59519273/

24 4 0