我正在寻找一种有效的方法,可以获取所有节点及其子节点,并使用单个arraylists
将它们存储在两个不同的valueEventListener
中。
这就是我所做的。
ValueEventListener allCodesListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// This method is called once with the initial value and again
// whenever data at this location is updated.
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
CouponObj post = postSnapshot.getValue(CouponObj.class);
list.add(new CouponObj(post.getCode(), post.getDetail(), post.getExpirationDate(), post.getLikes(), post.getStatus(), post.getSuccessRate(), post.getUsers_today()));
Log.e("Get Data", post.getCode());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
myRef.child("allcodes").addValueEventListener(allCodesListener);
在这个listener
中,我只有allcodes
的孩子。现在,我可以重复上面的相同代码,并创建另一个侦听器,并获取more_apps
的所有子级,但是我想知道是否有更好的方法。
在这种情况下,我在firebase
上有多个节点,我想将它们全部存储在arraylist
中并将它们存储在sqlLite
中,我必须为此写很多听众。问题是有两个以上的节点及其子节点。我想一口气将它们全都放在单个listener
中。