gpt4 book ai didi

ios - TableView 重复项和 firebase 搜索查询

转载 作者:可可西里 更新时间:2023-11-01 02:06:20 26 4
gpt4 key购买 nike

下面的代码片段有两个问题。

  1. 我的 TableView 中有重复项。
  2. 当我搜索返回结果的内容时,我尝试搜索另一个返回结果的内容时,现有结果将显示不是新结果,例如:

    一个。我搜索“ola”,我的 TableView 返回一个列表 -> olabode、olatunde、olaide。

    然后我搜索“bisi”,如果找到“bisi”的匹配查询,我仍然得到“ola”的查询结果。

    func searchView(_ searchView: AZSearchViewController, didTextChangeTo text: String, textLength: Int) {
    self.resultArray.removeAll()
    searchView.reloadData()

    guard text != "" else {
    return
    }
    AppFirRef.userRef.queryOrdered(byChild: "username")
    .queryStarting(atValue: text)
    .queryEnding(atValue: text + "\\uf8ff")
    .observe(.value, with: { (snapshot) in
    if (snapshot.value is NSNull) {
    print("not found")
    } else {
    print("found")
    self.resultArray.removeAll()
    searchView.reloadData()

    print("\(snapshot.value)")
    for case let snap as FIRDataSnapshot in snapshot.children {
    guard let value = snap.value as? [String : Any] else { continue }
    //print("\(snap.key)")
    print(value)
    let user = LContact(value: value, searchUserId: snap.key)
    self.set.add(user)
    if let username = user.username{
    self.resultArray.append(username.lowercased())
    searchView.reloadData()
    }
    }

    }
    })

    }

最佳答案

可能为时已晚,但改变

.observe(.value, with: { (snapshot) in
...
)}

.observeSingleEvent(of: .value, with: { (snapshot) in
...
)}

请参阅我对 this question 的回答作解释;它也适用于您,因为每当您的引用路径中的数据发生变化时(例如,当另一台设备上的某人更改了 userRef 引用路径中的数据时,您也会附加到数组。

关于ios - TableView 重复项和 firebase 搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659085/

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