【发布时间】:2017-03-20 10:30:38
【问题描述】:
免责声明:我提出这个问题并自己回答,因为我需要一个“更大的板”来回答this post 的扩展问题(因为整个解释永远不会适合评论
我有这些数据:
{
"users" : {
"randomUserId" : {
"books" : {
"booksId1" : true,
"booksId2" : true
}
}
},
"books" : {
"booksId1" : {
"title" : "Awesome Book"
},
"booksId2" : {
"title" : "Harry Potter"
}
}
}
我知道我必须先获取users/randomUserId/books,然后循环dataSnapshot 结果以获取所有书籍ID。然后我必须通过使用指向books/bookId?/ 的数据库引用来请求每个书籍ID 的详细数据。像这样的:
rootRef.child("users/" + user.getUid() + "books").addListenerForSingleValueEvent(new ValueEventListener() {
... onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot bookIdSnapshot : dataSnapshot) {
rootRef.child("books/" + bookIdSnapshot.getValue(String.class))
.addListenerForSingleValueEvent(...) {
// here i get the book detail data
}
}
}
...
}
但是使用该代码,每个rootRef.child("books/"...) 将单独执行。那么如何才能知道数据是否已经完全获取呢?
【问题讨论】:
标签: android firebase firebase-realtime-database