【发布时间】:2022-02-01 13:59:29
【问题描述】:
我正在尝试从 Firebase 检索数据,但我不知道如何操作。我在 Firebase [1] 中有以下数据结构:https://i.stack.imgur.com/vN7Ge.png:
![在此处输入图片描述][1]
我可以检索类别标题(睡眠、减压和放松),但不知道如何检索作者。
dataSnapshot.child("author").getValue(String.class)) ; doesn't work.
.
databaseReference = FirebaseDatabase.getInstance().getReference().child("Category");
}
public void getDataFromFirebase() {
List<ParentItem> parentItemsList = new ArrayList<>();
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
String category = dataSnapshot.child("Category").getValue(String.class));
String author = dataSnapshot.child("author").getValue(String.class));
}
Log.d("TAG", "onDataChange: "+ parentItemsList);
}
更新 现在我有以下代码来检索数据,但永远无法达到 onDataChange()。
list.add("Milena"); // this word shows in recyclerview
databaseReference = FirebaseDatabase.getInstance().getReference().child("Category");
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
list.add("M");
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String category = ds.child("Category").getValue(String.class);
list.add(category);
for (DataSnapshot data : dataSnapshot.getChildren()) {
author = data.child("author").getValue(String.class);
list.add(author);
}
}
}
firebase 规则:
{
"rules": {
".read": "auth==true",
".write": "auth==true"
}
}
我有list.add("Milena") 行,以确保问题出在firebase,而不是recycler 视图本身。回收站视图仅显示单词“Milena”。我有一行作为 OnDataChange 方法 list.add("M") 的第一行。回收站视图不显示该字母。
我已经将 google-services.json 文件添加到我的应用中,并将这一行添加到清单 <uses-permission android:name="android.permission.INTERNET"/>
为什么我仍然无法检索数据?
【问题讨论】:
标签: java android firebase firebase-realtime-database google-cloud-platform