为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

缥缈止盈 2023-09-21 14:15:53
我目前的 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
查看完整描述

2 回答

?
慕的地10843

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

  });


查看完整回答
反对 回复 2023-09-21
?
万千封印

TA贡献1891条经验 获得超3个赞

上面的评论和回答非常有帮助。我最终通过更改为解决了这个push问题update

现在代码如下:

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



查看完整回答
反对 回复 2023-09-21
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信