Java arrayList是空的Firebase数据库
我已经看到了一些与此相关的答案,但从一周的时间里,我还不知道如何做到这一点。 数组列表为空 我尝试使用一个查询,使用这个函数,但无法得到任何简单或更好的解决方案Java arrayList是空的Firebase数据库,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我已经看到了一些与此相关的答案,但从一周的时间里,我还不知道如何做到这一点。 数组列表为空 我尝试使用一个查询,使用这个函数,但无法得到任何简单或更好的解决方案 mUserDatabase=FirebaseDatabase.getInstance().getReference().child(uid).child("Medicines"); mUserDatabase.addValueEventListener(new ValueEventListener() { @Override
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) {}});
要从数据库架构中获取键和值,请使用以下代码行:
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
对象列表,并根据需要使用它。请不要忘记检查我在以下帖子中的答案:
/someUid/Medicines
下的所有数据,并在显示toast之前解析结果。您应该在等待查询数据时显示一段时间。我将字符串键设置为全局键,然后尝试在toast.makeText(this,key,toast.LENGTH_SHORT).show()之外使用toast;但吐司是“BLANK@Rohitgupta在您的示例中,键
在设置值之前就被“烤”了。您不是在等待数据被查询和解析。@Rohitgupta samthecodingman是对的。这就是我在回答的最后给你举这个例子的原因。你现在解决问题了吗?