我试图在我的应用中实现Firebase数据库,但我在同时从多个节点检索数据并更新UI时遇到问题。 我将所有Firebase方法存储在单独的类中。 这里是一个从节点检索一个数据的方法的例子。从Firebase数据库并行检索数据并与Android中的UI同步
public static void getTrainerCity(final Trainer trainer) {
dbref.child(USER_CITY).child(trainer.getId()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
trainer.setCity(dataSnapshot.getValue(String.class));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
然后,为了获取例如一个完整的教练,我做
public static void getTrainer(final boolean isAthlete, final String trainerId, Trainer trainer) {
trainer.setId(trainerId);
getTrainerCity(trainer);
getTrainerName(trainer);
getTrainerAge(trainer);
getTrainerNumber(trainer);
getTrainerEmail(trainer);
getTrainerGym(trainer);
getTrainerPhoto(trainer);
getTrainerStudyDegree(trainer);
getTrainerDescription(trainer);
if(!isAthlete) {
getTrainerAthletes(trainer);
}
}
当我打电话的UI这个方法,我没有得到整个训练目的是在一个镜头,因为这些方法唐不会在主线上运行。这意味着培训师不断更新。但是,我只想在与该方法相关的对象的所有字段都已设置时(我必须填充列表并初始化用户)才通知UI。你会如何做到这一点?
我想过安装监听器,但似乎我需要他们的巨大数额。谢谢你们
更好的数据存储和检索,如https://firebase.google.com/docs/database/web/structure-data所述,我有不同的节点,如:user_city,user_name,user_email,ecc,运动员和教练都在这里拉。 – Synchronyze
不知道乌尔DB结构没有人可以帮助 – uguboz
只是增加了一个PIC – Synchronyze