gpt4 book ai didi

iOS:Firebase removeValue 似乎正在损坏数组数据?

转载 作者:行者123 更新时间:2023-11-29 05:33:55 25 4
gpt4 key购买 nike

所以我遇到了一个奇怪的问题。本质上,我有一个数组,它是 tableView 的数据源:

data : [(String: SomeDataStruct)] = [(username1, data1), (username2, data2), (username3, data3)...]

在我的 firebase 数据库中,我的数据是:

enter image description here

如果我从 TableView 中删除一个值,这是通过从数组中删除相应的项目来完成的。然后,我从 firebase 中删除该项目以保持数据同步。例如,如果我想删除 username2,我会从数组中删除包含 username2 的元组 - 它位于索引 1 处。然后我使用:

data : [(String: SomeDataStruct)] = [(username1, data1), (username2, data2), (username3, data3)...]

referenceToOrders.child("username2").removeValue(completionBlock: { (err, ref) in

print(data)
// data is [] when it should be [(username1, data1), (username3, data3), (username4 ... ]

})

我已将其隔离到这一行 - 由于某种原因,调用 firebase removeValue 函数会导致数据数组被清除。作为解决方法,在调用之前,我创建数据数组的副本。但是,我对这个解决方案并不满意。

帮忙?

最佳答案

回答以供将来引用和其他人使用。

因此,在添加大量打印语句后,我发现问题是我有一个观察 Firebase 处理程序,该处理程序紧接在 removeValue 之后但在完成处理程序之前运行。这是有道理的,因为数据库此时已更改,因此处理程序会触发。

关于iOS:Firebase removeValue 似乎正在损坏数组数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57247349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com