我正在尝试使用 firstore 和 swiftui 编写一些测试,我可以创建和读取,但现在我不知道如何列出唯一数据,

Posted

技术标签:

【中文标题】我正在尝试使用 firstore 和 swiftui 编写一些测试,我可以创建和读取,但现在我不知道如何列出唯一数据,【英文标题】:I'm trying to write some test with firstore and swiftui, I can create and read, but now i don't know how to list unique data, 【发布时间】:2020-02-04 03:32:22 【问题描述】:

你可以看到我在这个文档中有两个字段,“ing01”和“nameReceta”这个集合中的每个文档都有相同的名称字段,在“ing01”字段中我有“Pimienta”的描述,我的应用程序它允许在“ing01”中有更多带有“Pimienta”的文档,这很好,但是当我想列出它时,我只需要列出一个“Pimienta”,我怎样才能删除其他的?

我有这个数据模型

struct ModeloRecetasIng : Identifiable, Hashable, Equatable 
   var id: String
   var nameReceta: String
   var ing01: String

在这里我得到了数据,它工作正常。

class ingredientesAdd : ObservableObject 
    //    @Published var datosNoDupl = [DataNoDuplicates]()
    @Published var datas = [ModeloRecetasIng]()

    init() 
        // Borra el cache
        let settings = FirestoreSettings()
        settings.isPersistenceEnabled = false

        let db = Firestore.firestore()
        db.settings = settings

        // Borra el cache
        db.collection("DespensaIng01").getDocuments  (snap, err) in
            if err != nil 
                print((err?.localizedDescription)!)
                return
            

            for i in snap!.documents
            
                let id = i.documentID
                let nameReceta = i.get("nameReceta") as! String
                let ing01 = i.get("ing01") as! String

//
                self.datas.append(ModeloRecetasIng(id: id, nameReceta: nameReceta, ing01: ing01))
            

            // I'm trying to use set but it doesn't work
            let uniqueUnordered = Array(Set(self.datas))
            self.datas = uniqueUnordered
            print(self.datas)
        
    

当我拿到我的打印件时,我看到了这个

Pimienta
Pimienta
Zanahoria
Zanahoria
Zanahoria

我只想要这个

Pimienta
Zanahoria

【问题讨论】:

【参考方案1】:

已解决.. 只需在 Firestore 中使用自定义 ID,不再重复,现在我只需对 de 数量求和

【讨论】:

以上是关于我正在尝试使用 firstore 和 swiftui 编写一些测试,我可以创建和读取,但现在我不知道如何列出唯一数据,的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中的 List 是不是复用类似于 UITableView 的单元格?

应用 Frame 修饰符时出现 ScrollView 布局错误

在 Flutter 中捕获云 Firestore 文档快照错误

Catalyst 'SwiftUI.AccessibilityNode' 不是已知的可序列化元素

按返回键“不”关闭软件键盘 - SwiftUI

在 Ionic 5 路由器中登录/注销时登录/主页不会被破坏