我開發了使用Google地圖和Firebase數據庫的應用程序。在地圖上長按,我將LatLng保存在Firebase DB中;Firebase onChildAdded()事件有時/空閒時間後未觸發
// code to save latlng to DB
mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
mDatabaseReference.push().setValue(latLng);
}
});
這會導致Firebase觸發器通知通過onChildAdded()添加了一個子事件。
if (mChildEventListener == null) {
mChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String key = dataSnapshot.getKey();
Log.i(TAG, "onChildAdded " + s + " @ " + key);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
String key = dataSnapshot.getKey();
Log.i(TAG, "onChildChanged " + s + " @ " + dataSnapshot.getKey());
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
String key = dataSnapshot.getKey();
Log.i(TAG, "onChildRemoved " + dataSnapshot.getKey());
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
String key = dataSnapshot.getKey();
Log.i(TAG, "onChildMoved " + s + " @ " + key);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i(TAG, "onCancelled " + databaseError.getDetails());
}
};
mDatabaseReference.addChildEventListener(mChildEventListener);
}
所有預期的代碼工作正常。不過,我注意到,在一段空閒時間後,應用程序未收到子偵聽器事件(onChildAdded,onChildChanged等)。在地圖上長按,latlng座標將保存到我正在使用控制檯監視的Firebase數據庫中。 有沒有人遇到過這樣的問題?我錯過了什麼嗎?
我目前已授予公開訪問數據庫的初始開發目的。 – Sameer