ios - firebase 正在从数据库中检索已删除的数据

标签 ios swift firebase firebase-realtime-database

我正在使用 firebase 实时数据库,它在我的应用程序的某些部分运行良好。我正在浏览 youtube 上的教程,该教程使用用户填充 collectionView。它使用 NSDictionary 获取照片 URL 和用户名,并将它们放入所有用户的 Collection View 中。我在firebase控制台直接删除了部分用户,现在只有一个用户。出于某种原因,它仍在拉动我删除的用户。这是 collectionView 文件。

import UIKit
import FirebaseDatabase

private let reuseIdentifier = "UserSearchCell"

class UsersCollectionViewController: UICollectionViewController {

var usersDict = NSDictionary?()
var userNamesArray = [String]()
var userImagesArray = [String]()

override func viewDidLoad() {
    super.viewDidLoad()
    DataService.ds.REF_USERS.observeEventType(.Value, withBlock :{
        (snapshot) in
        self.usersDict = snapshot.value as? NSDictionary
        for(userId,details) in self.usersDict!{
            let img = details.objectForKey("profileThumbUrl") as! String
            let name = details.objectForKey("username") as! String
            self.userImagesArray.append(img)
            self.userNamesArray.append(name)
            self.collectionView?.reloadData()
        }
    })

    self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
}

override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
    return 1
}

override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.userImagesArray.count
}

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! UserSearchCell

    let imageUrl = NSURL(string:userImagesArray[indexPath.row])
    let imageData = NSData(contentsOfURL: imageUrl!)
    cell.userImage.image = UIImage(data:imageData!)
    cell.userName.text = userNamesArray[indexPath.row]

    return cell
}

这不应该总是与数据库同步吗?这些被删除的用户来自哪里?我也没有包含单元格代码,因为它只是声明了 imageView 和 Label 操作。我以前遇到过这个问题,但我的内存力很差,我不记得为什么会这样,或者我是否解决过它。

最佳答案

好的,我找到了我自己问题的答案。显然,模拟器在使用 firebase 时存在问题,并且似乎形成了某种 firebase 数据缓存。我试着在我测试过的手机上运行它,它没有这个缓存,但一切正常。我还尝试在模拟器中的不同设备上运行,它在那里也运行良好。所以我想保留它,因为我认为很多人可能在使用 Firebase 时遇到问题,因为它的核心功能不能很好地与 IOS 模拟器配合使用。

关于ios - firebase 正在从数据库中检索已删除的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38677241/

相关文章:

ios - iTunes Connect未启用您的Apple ID

iphone - 如何在返回 CFType 的函数上命名和处理内存管理

swift - 在所有成员初始化之前被闭包自捕获

ios - Swift:购买完成时如何通知

firebase - Firestore 安全规则 - 更新数组字段 - 仅允许推送 (arrayUnion)

android - 无法解析 : com. google.firebase :firebase-auth:9. 0.0

android - 添加 com.google.firebase :firebase-firestore:11. 4.2 后出现 DexOverflowException

IOS UI 自动化导出跟踪结果

iphone - 登录页面

ios - Swift:类方法只能在类型上声明