数据在 Firebase 中的保存顺序与 SwiftUI 的传输顺序不同
Posted
技术标签:
【中文标题】数据在 Firebase 中的保存顺序与 SwiftUI 的传输顺序不同【英文标题】:Data is saved in Firebase in a different order than it is transferred SwiftUI 【发布时间】:2020-09-02 13:01:13 【问题描述】:我在应用程序中将数据保存到 Firestore。在代码中,它看起来像这样:
db.collection("flowers")
.document()
.setData(["Name":self.flowerName,
"Cup width":self.cupWidth,
"Cup height":self.cupHeight,
"Stem length":self.stemLength,
"Leaf width":self.leafWidth,
"Leaf length":self.leafLength])
但在 Firestore 中它看起来像这样:
Cup height: "1"
Cup width: "1"
Leaf length: "1"
Leaf width: "1"
Name: "Rose"
Stem length: "1"
我希望它们以与在应用程序中传输相同的方式保存在数据库中。我猜它们在数据库中按字母顺序排序,但可以更改吗?我在文档中查找了任何信息,但没有找到任何信息。
【问题讨论】:
你使用字典,它是无序容器。 为什么要它们以特定顺序保存在数据库中?阅读时,您可以按您喜欢的任何顺序访问这些字段。控制台按字典顺序显示所有数据,正如@frankvanpuffelen 在他的回答中提到的那样,也正如你提到的那样,但这似乎不是你要问的。如果您能澄清您的要求,我们或许可以提供解决方案。 【参考方案1】:Firestore 以 JSON 格式存储数据,根据定义,这种格式是无序的。因此,您将字段传递到数据库的顺序不会影响它们的存储顺序。
Firebase 控制台按字母顺序显示字段,但我不确定这是否得到保证。
当然,您可以按要求的顺序在应用的 UI 中显示它们。
【讨论】:
以上是关于数据在 Firebase 中的保存顺序与 SwiftUI 的传输顺序不同的主要内容,如果未能解决你的问题,请参考以下文章
本地写入是不是以与生成的顺序相同的顺序提交到 firebase
如何在 Swift 中保存实时 Firebase 数据库中的数据?