我有一个密钥,想将其推送到数据库中的特定项目,并且在向Firebase添加项目时使用.push()方法,但由于我需要它无法生成新密钥并在其中添加索引而无法使用

我得到了什么

--Orders
  -LASDAWWDMASDsad
  -0:"orderOne"
  -DAWKDAWKWKDKADW
  -0:"OrderTwo"
  ...


我需要的

--Orders
  -0:"orderOne"
  -1:"orderTwo"
  -2:"orderThree"
  ...




const displayTable = document.getElementById('display-table')
  ,   lipProCkBxs  = document.querySelectorAll('#lip-pro input[type=checkbox]')
  ,   tableTotal   = document.querySelector('#display-table tfoot tr td:last-child')

const {snapshotVal, uid, serviceDB} = this.state;

onPress: () => {
            let arr = [snapshotVal];
            // console.log(arr); // ["orderOne"]
            database()
              .ref(`Providers/users/${uid}`)
              .child('rejectedOrders')
              .push(arr)
              .then(
                () => console.log('Done'),
                setTimeout(() => {
                  this.props.navigation.goBack();
                }, 200),
              )
              .catch(error => console.log('@error', error));
            }


由JS解决:“ D

我查询以获取被拒绝订单的长度,然后当我想更新时,我只是增加了+1的长度
效果很好:3

componentDidMount() {
  let uid = auth().currentUser.uid;

  database()
    .ref(`Providers/users/${uid}`)
    .child('rejectedOrders')
    .on('value', snapshot =>
    this.setState({arrlength: snapshot.val().length - 1}),
    );
}

onPress: () => {
  let arr = [snapshotKey];
  console.log(arr);

  let updates = {};
  // updates[Math.floor(Math.random() * 10)] = snapshotKey;
  updates[arrlength + 1] = snapshotKey;
  database()
    .ref(`Providers/users/${uid}`)
    .child('rejectedOrders')
    // .push(...arr)
    .update(updates)
    .then(...)
}

最佳答案

您可以使用set()代替push()

database()
              .ref(`Providers/users/${uid}`)
              .child('rejectedOrders')
              .set(arr)
              .then(
                () => console.log('Done'),
                setTimeout(() => {
                  this.props.navigation.goBack();
                }, 200),
              )
              .catch(error => console.log('@error', error));
}

关于javascript - 如何将数据作为索引数组推送到Firebase?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59364966/

10-10 00:13