javascript - Firebase 推送承诺永远不会解决
问题描述
我正在尝试从我的 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 控制台中,我什么也没看到。我很惊讶 then 和 catch 甚至没有被调用。我错过了什么?控制台不显示任何错误。
我的 Firebase 数据库规则:
这是我的 Firebase 实时数据库视图:
问题-我正在推送/users/${currentUser.uid}/employees
路径,我需要手动创建“用户”节点吗?
解决方案
在 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);
});
推荐阅读
- swift - 如何在 Swift 4 中仅圆角 NSButton 的一侧?
- scheme - 将列表的第二个元素移到前面的递归方法是什么?[球拍]
- c# - Regex.Matches 使用前瞻没有得到任何匹配
- html - 如何在忍者窗体中添加图标
- javascript - 使用 Node.js 从 firebase 获取特定的键值对
- c# - 从 Nunit 测试结果生成报告
- search - 为 Outlook 公用文件夹创建搜索文件夹
- csv - 转换 csv 文件头
- emacs - Emacs 首次启动不会安装 package-selected-packages 中的所有包
- php - MySQL 触发器不会触发