我有一个密钥,想将其推送到数据库中的特定项目,并且在向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/