FirebaseUI Firestore 未在 iOS 上检索数据

Posted

技术标签:

【中文标题】FirebaseUI Firestore 未在 iOS 上检索数据【英文标题】:FirebaseUI Firestore not retrieving data on iOS 【发布时间】:2018-08-28 13:36:55 【问题描述】:

FirebaseUI-Firestore ios 的 documentation 不是很彻底,我已经实现了代码,但我的集合视图没有被填充:

class HomeViewController:UIViewController 

@IBOutlet weak var collectionView: UICollectionView!

var firestore:Firestore = Firestore.firestore()

override func viewDidLoad() 
    super.viewDidLoad()

    let query = firestore.collection("/offers")

    let dataSource = collectionView.bind(toFirestoreQuery: query)  (collectionView, indexPath, documentSnapshot) -> UICollectionViewCell in
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! OfferHolderCollection
        print("POPULATING")
        cell.myLabel?.text = documentSnapshot.data()?["name"] as? String
        return cell
            

android 上,adapter.startListening() 方法将放在 onResume() 中以开始检索数据,但 iOS 似乎没有这种方法。上面的代码是否足以开始检索数据?

【问题讨论】:

【参考方案1】:

发现我的错误。来自 FirebaseUI 源代码 cmets:

* The returned data source is not retained by the collection view and must be
* retained or it will be deallocated while still in use by the collection view.

确实,文档示例确实将其存储在 self.datasource 中,而我的代码将其存储在本地。因此,通过使数据源成为 ViewController 的成员来解决此问题。

【讨论】:

以上是关于FirebaseUI Firestore 未在 iOS 上检索数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 firebaseui:firebase-ui-firestore 构建发布 APK 时出现问题

FirebaseUI - 在创建用户之前验证 displayName

Firebase Firestore 未在 google chrome 中获取数据

Firestore 触发器未在模拟器上运行

视图模型中的 Firestore 方法未在 SwiftUI onAppear 方法中调用

React setState未在firestore中执行添加文档承诺解析