你能用 swift 将字符串附加到 Firebase 数组吗?



我正在跟踪用户是否喜欢Firebase中的餐厅,但我目前正在使用字符串来执行此操作。我知道可以在Firebase中更新数组,但是从我所阅读的内容来看,为了做到这一点,每次要添加新元素时,您都需要重写整个数组。有没有办法将字符串附加到数组的末尾?如果这是不可能的,有没有人知道比只使用字符串更好的选择?

这是我现在使用的:

var likedBarsGlobal: [String] = [] {
didSet {
var lb = ""
for i in 1...likedBarsGlobal.count - 1 {
if(i == likedBarsGlobal.count - 1){
lb += "(likedBarsGlobal[i])"
} else {
lb += "(likedBarsGlobal[i]), "
}
}
db.collection("users").document(userId).updateData(["likedBars": lb ]) { (error) in
if error != nil {
print(error)
}
}
}
}

Firestore 有一个特殊的记录操作,使用 FieldValue.arrayUnion(( 将单个项目附加到数组的末尾:

let washingtonRef = db.collection("cities").document("DC")
// Atomically add a new region to the "regions" array field.
washingtonRef.updateData([
"regions": FieldValue.arrayUnion(["greater_virginia"])
])

如果要对数组进行任何更改,而不是添加或删除单个项目,则必须读取数组,修改它,然后将其写回。

最新更新