我有一个没有键的数组。如何将元素附加到无密钥数组?
favorites:
- 0
|
-- name: "bs41"
- 1
|
-- name: "uie"
所以我的结果是:
favorites:
- 0
|
-- name: "bs41"
- 1
|
-- name: "uie"
- 2
|
-- name: "pts4"
答案 0 :(得分:2)
这里最好的方法是交易。
但与往常一样:Firebase建议不要使用数组的原因很多。
例如:可以在favorites
中指定两次相同的值吗?有可能每个用户只能指定一次收藏。因此,在这种情况下,您接下来的一个问题是:如何防止此Firebase数组中的重复值?而那个问题的答案将再次出现:进行交易。
交易损害了应用程序的性能和可伸缩性;这也意味着当离线用户时你的应用程序将无法运行。无论什么时候需要交易,都会想知道是否有一个数据模型可以完成不需要交易的相同用例。
用于存储收藏夹,只需将值放入集合的键中即可:
favorites:
"bs41": true
"uie": true
"pts4": true
现在您可以自动保证每个收藏价值只能出现一次。添加新项目也非常简单:ref.child("favorites").child("newfav").setValue(true)
。
我刚刚分享的数据模型是您如何在Firebase中为集合建模。根据我的经验,当你有一个数组/列表并在添加新项目之前检查它是否包含特定值时,你通常应该使用一个集合。