2 回答

TA貢獻1785條經驗 獲得超8個贊
????
請記住,實時數據庫中的所有內容都是鍵:值對。當定義路徑并且您在該路徑中進行 .push 時,將創建一個具有子鍵:值對的節點,該節點位于該路徑的“下方”。
如果您查看代碼,您實際上是在定義數據的路徑,最后一個組件是date
this.db.ref(`organization/${orgId}/visitor-attendance/${date}`).push({[attendeeUid]: true});
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^^^ path? ? ? ? ? ^^^ key? ?^^^ value
路徑是
organization
? ?orgId
? ? ? visitor-attendance
? ? ? ? ?date
? ? ? ? ? ?the pushID
? ? ? ? ? ? ? ?MNSIxm_woAnBAkVQWRV: true
每次將新子項添加到指定的 Firebase 引用時,push() 方法都會生成一個唯一的密鑰。
一種可能的解決方法是使用 .set,
對于基本寫入操作,您可以使用 set() 將數據保存到指定的引用,替換該路徑上的任何現有數據。
firebase.database().ref('users/' + userId).set({
? ? username: name,
? ? email: email,
? ? profile_picture : imageUrl
? });

TA貢獻1891條經驗 獲得超3個贊
上面的評論和回答非常有幫助。我最終通過更改為解決了這個push
問題update
。
現在代碼如下:
setVisitorAttendanceDate = (orgId, attendeeUid, date) => this.db.ref(`organization/${orgId}/visitor-attendance/${date}`).update({[attendeeUid]: true});
添加回答
舉報