Javascript 如何将数据作为索引数组推送到firebase?

Javascript 如何将数据作为索引数组推送到firebase?,javascript,reactjs,firebase,firebase-realtime-database,Javascript,Reactjs,Firebase,Firebase Realtime Database,我有一个键,想将它推送到数据库中的一个特定项,当我向firebase添加一个项时,我使用.push()方法,但它不起作用,因为我需要它生成一个新键并在其中添加索引 我得到了什么 --Orders -LASDAWWDMASDsad -0:"orderOne" -DAWKDAWKWKDKADW -0:"OrderTwo" ... 我需要什么 --Orders -0:"orderOne" -1:"orderTwo" -2:"orderThree" ... 代码

我有一个键,想将它推送到数据库中的一个特定项,当我向firebase添加一个项时,我使用.push()方法,但它不起作用,因为我需要它生成一个新键并在其中添加索引

我得到了什么

--Orders
  -LASDAWWDMASDsad
  -0:"orderOne"
  -DAWKDAWKWKDKADW
  -0:"OrderTwo"
  ...
我需要什么

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

由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()

您可以使用
set()
而不是
push()


但是,当我添加任何新项目时,它将用新项目替换以前的项目,我不需要此案例,然后使用update()它将执行相同的操作:(我认为没有办法保存这样的项目?我在询问之前搜索过,但我找不到任何答案来实现我想要的,请检查我的问题以查看我制作了什么哈哈:”D但当我添加任何新项目时,它将用新项目替换上一个项目,我不需要这个案例,然后使用update()它将执行相同的操作:(我认为没有办法保存这样的项目?我在询问之前搜索过,但我找不到任何答案来实现我想要的,请检查我的问题以查看我制作了什么哈哈:“D
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(...)
}
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));
}