我正在尝试从React Native App中保存一个对象。请查看以下代码段。
const { currentUser } = firebase.auth();
firebase.database().ref(`/users/${currentUser.uid}/employees`)
.push({ name, phone, shift })
.then(() => {
console.log('Save to Firebase was successful');
})
.catch((error) => {
console.log(error);
});
但是在Firebase控制台中,我什么都没看到。我很惊讶当时和捕获甚至没有被召唤。我错过了什么?控制台不显示任何错误。
我的Firebase数据库规则:
这是我的Firebase实时数据库视图:
问题 - 我正在推进/users/${currentUser.uid}/employees
路径,是否需要手动创建“用户”节点?
答案 0 :(得分:3)
在Firebase中,push()函数为每个新子项生成一个唯一键,set()或update()函数在节点中插入或更新数据。
试试这个:
firebase.database().ref(`/users/${currentUser.uid}/employees`)
.push()
.set({ name, phone, shift })
.then(() => {
console.log('Save to Firebase was successful');
})
.catch((error) => {
console.log(error);
});
或者这个:
let niceKey = firebase.database().ref(`/users/${currentUser.uid}/employees`).push()
niceKey.set({ name, phone, shift })
.then(() => {
console.log('Save to Firebase was successful');
})
.catch((error) => {
console.log(error);
});
答案 1 :(得分:0)
请勿使用推送将数据保存到Firebase,而是使用set
或update
。以下是它的工作原理: -
firebase.database().ref(`/users/${currentUser.uid}/employees`).set({
name: name,
phone: phone,
shift : shift
});
如需了解更多信息,请访问: - https://firebase.google.com/docs/database/web/read-and-write
希望它会有所帮助。