如何在 Firebase 中獲得最后的附加值?
來自 Firebace 的通知獲取最后的附加值
此代碼計算串列中的所有值。當我添加新值時,我得到了相同的值而不是所有的值。
發送資料
private void addNotification(String userid, String postid){
DatabaseReference reference = FirebaseDatabase.getInstance( )
. getReference("Notifications").child(userid);
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("userid", firebaseUser.getUid());
hashMap.put("text", "liked your post");
hashMap.put("postid", postid);
hashMap.put("ispost", true);
reference.push().setValue(hashMap);
}
接收資料
final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
Query lastQuery = reference.child("Notifications").child(firebaseUser.getUid());
lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
notification_badge.setText(dataSnapshot.getChildrenCount() "");
notification_badge.setVisibility(View.VISIBLE);
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Handle possible errors.
}
});
uj5u.com熱心網友回復:
Firebase 會同步您從 ( Notifications) 讀取的路徑中的狀態。如果你想檢測發生了什么變化,你有幾個選擇:
- 讀取并處理資料后,從路徑中洗掉資料,以便下次從該路徑讀取時它不存在。
- 在每個子/通知節點中保留一個時間戳,在您上次讀取路徑時在應用程式代碼中進行跟蹤,然后使用查詢僅獲取新節點:
lastQuery.orderByChild("timestamp").startAt(lastTimeYouChecked)。
另見:
- 如何僅獲取更新的資料 Firebase
- 如何從 firebase 資料庫中僅獲取更新的子資料?
- 如何僅從 Firebase 獲取新添加的資料?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433405.html
標籤:爪哇 安卓 火力基地 firebase-实时数据库
上一篇:java.util.Calendar格式mm/dd/yyyy和hh:mm:ss
下一篇:如何根據用戶輸入中斷代碼的執行
