我使用費爾南多cejas'清潔機器人樣板代碼爲我的項目和 實施火力實時數據庫到我的項目,但是,當我調試我的代碼,我看到我的發射器是配置每次onDataChange ()被調用(當我添加一個新的行到我的firebase數據庫),我的用戶界面不是呈現新的列表內容,這裏是我的數據模塊代碼,有什麼建議嗎?清潔架構rxjava火力點實施
@Override
public Observable<List> signalEntityList() {
Firebase myFirebaseRef = new Firebase("https://mydatabase.firebaseio.com/");
return Observable.create(emitter -> {
if (isThereInternetConnection()) {
myFirebaseRef.child("signal").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
List<SignalEntity> list = new ArrayList<>();
Iterable<DataSnapshot> snapshotIterable = snapshot.getChildren();
Iterator<DataSnapshot> iterator = snapshotIterable.iterator();
while (iterator.hasNext()) {
SignalEntity signalEntity = iterator.next().getValue(SignalEntity.class);
list.add(signalEntity);
}
emitter.onNext(list);
emitter.onComplete();
}
@Override
public void onCancelled(FirebaseError error) {
emitter.onError(new FirebaseException(error.getMessage()));
}
});
} else {
emitter.onError(new NetworkConnectionException());
}
});
}
您在數據更改時調用'emmitter.onComplete'。我認爲可觀察項目在完成時即被處置。 – masp
比你先生,我覺得問題解決了。我不能夠感謝你,節省了很多時間。 –
@masp,請您將您的評論作爲答案寫下,我會接受您的答覆作爲接受的答案。謝謝。 –