【问题标题】:Firebase Update Instance If The Value Exist如果值存在,则 Firebase 更新实例
【发布时间】:2021-10-27 09:41:06
【问题描述】:

如果值存在,我想更新实时数据库中的实例
如果实时数据库中的日期与今天相同,则将新数据推送到 resi
所以每个日期在resi里面都有很多数组
我试过这个东西,它在数据库中创建了一个新实例

firebase
        .database()
        .ref('resi-list')
        .orderByChild("date")
        .equalTo(moment().format('dddd, MMMM Do YYYY'))
        .once('value')
        .then(snapshot => {
          if (snapshot.val()) {
            firebase
              .database()
              .ref('resi-list')
              .child(snapshot.val().key)
              .update({
                resi: [{
                  noResi: resiForm.noResi,
                  type: resiForm.type,
                }]
              })
              .then(res => AlertInfo('Success', 'Success Post Data!', 'success'))
              .catch(err => AlertInfo('Oops', 'Error Post Data!', 'Error'));
          } else {
            firebase
              .database()
              .ref(`resi-list`)
              .push({
                date: moment().format('dddd, MMMM Do YYYY'),
                resi: [{
                  noResi: resiForm.noResi,
                  type: resiForm.type,
                }],
              })
              .then(res => {
                AlertInfo('Success...', 'Success Post Data', 'success');
                fetchResiList();
              })
              .catch(err => AlertInfo('Oops', 'Error Post Data', 'Error'));
          }
        }).catch(err => console.log(err));

【问题讨论】:

    标签: javascript firebase-realtime-database


    【解决方案1】:

    如果你想让某个值在实时数据库中唯一,你应该把它作为一个节点的键。这是唯一保证唯一性的方法。


    因此,不要将您的日期存储为 0 下的属性,而是将其用作键,如下所示:

    resi-list: {
      "2021-08-06": {
        resi: {
          ...
        }
      }
    }
    

    现在每个数据在resi-list 下只能出现一次。此外,我更改了您的日期格式,以便更轻松地对其进行排序和过滤。


    如果您还希望 noResi 值在每个日期的 resi 下是唯一的,您可以在此处执行相同操作并使用 th noResi 值作为这些节点的键:

    resi-list: {
      "2021-08-06": {
        resi: {
          "EX102039-48576": {
            ...
          }
        }
      }
    }
    

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多