Swift/FireStore-追加/更新数组中的元素



好的,所以这个功能是半工作的:

API.FIRESTORE_DOCUMENT_USERID(userID: userID).updateData(["user_rating":FieldValue.arrayUnion([averageRating])])

正如您所知,我正在尝试更新user_rating字段并传递平均评级。然而,由于平均评级可以是1-5之间的任何值,包括小数/双位数,因此平均评级可能已经存在,即1.5, 2.5, 2.7等。然而,我似乎不能将相同的值附加两次。如果我更改了评级,那么我肯定可以追加。据我所知,数组中的每个条目都有自己的ID?我可以允许重复吗?

谢谢。

找到解决方案时,您必须首先读取数组中的现有数据,然后附加您想要的任何数据,然后再次更新数据,如下所示:

[YOUR_REFERENCE].getDocument { (querySnapshot, error) in
if let error = error {
print(error.localizedDescription)
} else {
var array:[THE_DATA_TYPE] = querySnapshot?.get("[FIELD_NAME]") as [THE_DATA_TYPE]
array.append([DATA_YOU_WISH_TO_APPEND])
querySnapshot?.reference.updateData(["[FIELD_NAME]" : array])
}
}

我已经将其通用化,以防任何人只想复制和粘贴。

最新更新