FirebaseUI Firestore 未在 iOS 上检索数据
FirebaseUI Firestore not retrieving data on iOS
FirebaseUI-Firestore documentation 的 iOS 不是很彻底,我已经实现了代码,但我的集合视图没有被填充:
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似乎没有这样的方法。上面的代码是否足以开始检索数据?
发现我的错误。来自 FirebaseUI 源码评论:
* 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 documentation 的 iOS 不是很彻底,我已经实现了代码,但我的集合视图没有被填充:
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似乎没有这样的方法。上面的代码是否足以开始检索数据?
发现我的错误。来自 FirebaseUI 源码评论:
* 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.
的成员来解决此问题