firebase正在从数据库

时间:2016-07-30 18:31:18

标签: ios swift firebase firebase-realtime-database

我正在使用firebase实时数据库,它对我的​​应用程序的某些部分工作正常。我正在浏览youtube上的一个教程,该教程用户填充了一个collectionView。它使用NSDictionary来获取照片URL和用户名,并将它们放在所有用户的集合视图中。我直接在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操作。之前我遇到过这个问题,但是我的记忆很糟糕,我不记得为什么要这么做,或者我是否解决过它。

1 个答案:

答案 0 :(得分:7)

好的,我找到了自己问题的答案。显然,模拟器有一个firebase的问题,似乎形成了某种firebase数据的缓存。我尝试在我测试的手机上运行它并且没有这个缓存,一切正常。此外,我尝试在模拟器中运行不同的设备,它也在那里工作正常。所以我想放弃它,因为我认为很多人可能会遇到Firebase的问题,因为它的核心功能与IOS模拟器不兼容。