我試圖在我的應用中實現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