如何消除 Firebase 推送中出现的额外 uid

我目前的 firebase 数据库有以下推送查询。

setVisitorAttendanceDate = (orgId, attendeeUid, date) => this.db.ref(`organization/${orgId}/visitor-attendance/${date}`).push({[attendeeUid]: true});

这将创建以下内容:

- visitor-attendance
- 2020-11-30-PM-MNSIxmbzLwlW5Dq83Ws
-MNSIxm_woAnBAkVQWRV: true

它按预期添加了日期,但添加了额外的 UID。

在日期之后,它会为对象添加此 uid:

-MNSIxmbzLwlW5Dq83Ws

我怎样才能让它没有那个 UID 呢?所以这

- visitor-attendance
- 2020-11-30-PM
-MNSIxm_woAnBAkVQWRV: true


缥缈止盈
浏览 91回答 2
2回答

慕的地10843

    请记住,实时数据库中的所有内容都是键:值对。当定义路径并且您在该路径中进行 .push 时,将创建一个具有子键:值对的节点,该节点位于该路径的“下方”。如果您查看代码,您实际上是在定义数据的路径,最后一个组件是datethis.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  });

万千封印

上面的评论和回答非常有帮助。我最终通过更改为解决了这个push问题update。现在代码如下:setVisitorAttendanceDate = (orgId, attendeeUid, date) => this.db.ref(`organization/${orgId}/visitor-attendance/${date}`).update({[attendeeUid]: true});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript