【发布时间】:2018-09-22 02:25:47
【问题描述】:
这是一对多的关系:一个作者有很多书
authors:
randomAuthorId1:
authorId:
authorName:
randomAuthorId2:
authorID:
authorName:
books:
randomAuthorId1:
randomBookId1:
bookId:
bookName:
randomBookId2:
bookId:
bookName:
randomAuthorId2:
randomBookId3:
bookId:
bookName:
就我而言,我没有“randomAuthorId1”,但我有“randomBookId2”,这是我获取randomBookId2节点值的代码:
DatabaseReference bookRef = FirebaseDatabase.getInstance().getReference("books");
bookRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot data : dataSnapshot.getChildren()) {
if (data.hasChild("randomBookId2")) {
Book book = data.child("randomBookId2").getValue(Book.class);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
所以,它必须遍历所有子节点才能获得 randomBookId2 的节点。有没有更好的办法? 谢谢大家
【问题讨论】:
标签: java android json firebase firebase-realtime-database