Javascript 如何将数据作为索引数组推送到firebase?
我有一个键,想将它推送到数据库中的一个特定项,当我向firebase添加一个项时,我使用.push()方法,但它不起作用,因为我需要它生成一个新键并在其中添加索引 我得到了什么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" ... 代码
--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));
}