【发布时间】:2019-12-16 22:08:22
【问题描述】:
我有一个密钥,想将其推送到我的数据库中的特定项目,当我将项目添加到 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(...)
}
【问题讨论】:
标签: javascript reactjs firebase firebase-realtime-database