javascript - 在 push() 中插入子节点数组的问题
问题描述
我有以下代码:
export const createCharacter = (username, name, sex, vocation, achievementPoints, world) => {
return (dispath) => {
firebase.auth().signInWithEmailAndPassword('dev7@gmail.com', '123123')
.then(value => {
firebase.database().ref('/sales/')
.push({
owner: username,
character: [
{
name: name,
sex: sex,
vocation: vocation,
achievementPoints: achievementPoints,
world: world
}
],
price: 21.12
})
.then(() => {
})
})
.catch(error => alert(error))
}
}
...有了它,我得到了以下结果:
当我第一次尝试执行 action 方法时,我发现了这个错误:
错误:Reference.push 失败:第一个参数在属性中包含未定义
sales.character.0.name
但是当我第二次执行它而不刷新时,推送是成功的。
我的问题是,我应该如何推送才能不生成此 UID?
解决方案
当您将对象传递给 Firebase 时,属性的值可以是值或 null。它们不能是未定义的,
firebase.database().ref('/sales/')
.push({
owner: username || null,
character: [
{
name: name || null,
sex: sex || null,
vocation: vocation || null,
achievementPoints: achievementPoints || null,
world: world || null
}
],
price: 21.12
})
推荐阅读
- xslt - XSL Call Template String param as group-by element value
- ruby-on-rails - acts_as_paranoid gem is not working when we run sql query to delete record
- reactjs - 使用 React 自定义钩子的 API 调用不接受更新的参数
- command-line - What does [rm -rf /] do?
- nearest-neighbor - Using nearest neighbour to find postcode to new postcodes found
- javascript - 需要循环直到数组里面的数组有值
- vue.js - 如何完全部署我的前端 Vue 应用程序?
- excel - 将 Laravel 模型导出到 Excel,但将 created_at 列修改为仅日期而不是日期时间
- c# - 用于评估多个布尔值与 if 的开关的 C# 性能(特定用例)
- php - 在表之间链接外键