【发布时间】:2017-11-01 17:39:51
【问题描述】:
我有一组对象需要推送到 firebase。每个对象都应该有自己的按键。我能够做到这一点的唯一方法是在数组上映射并将每个对象传递给处理单个对象推送的 redux 操作。我知道这不是最好的方法,并且想知道这还能如何实现?
当我尝试将数组传递给操作(以构建更新对象以传递给 firebase.database().ref().update())时,我收到一条错误消息,指出它只能接受普通对象。数组是否需要转换为对象。
const arr = [{0: "x", 1:"y"}, {0:"a", 1: "b"}]
this.props.action(arr)// throws error "Actions must be plain objects"
这不可能吗?我应该改用 Promises 吗?
我确信有一个答案,但我找不到它,所以任何方向都将不胜感激!谢谢!
以下是 firebase 数据和我的数组数据的屏幕截图
【问题讨论】:
-
发布您的 Firebase 数据结构以及您尝试更新的数据结构。你是正确的,你不能只用一个普通的数组来更新 Firebase——实时数据库基本上是一个大的 JSON 对象树。但是,您可以使用单个对象一次性更新数据库。该对象的结构需要与您的 Firebase 数据库相同,仅包含您要更新的键和数据。当您更新参考时,Firebase 将完成合并它们的工作。
-
刚刚添加了截图!提前感谢您的帮助。
-
您是在尝试添加新条目,还是更新现有条目? “markets”下条目的key,-Kx_r3...和-KxcWq...的相关性是什么?
-
我正在添加新条目。密钥的原因是因为我需要稍后获取它们并将特定市场(用户选择)添加到其他集合
-
抱歉,我刚刚意识到我截错了 - 现在更新。