gpt4 book ai didi

ios - 使用适用于 iOS 的 FirebaseUI 访问数据库

转载 作者:行者123 更新时间:2023-11-29 11:46:10 25 4
gpt4 key购买 nike

我正在使用 FirebaseUI 将 Firebase 用作我的 UITableView 的数据源。在 firebase 中,我有两个数据库——用户和请求帖子。我想用“请求帖子”数据库中的信息填充我的 UITableView 单元格。我尝试运行下面的代码,但 requestPostDatabase 始终为零。我尝试了其他几种方法,但无法掌握“请求发布数据库”的子项。

self.datasource = self.tableView.bind(to: self.ref) { tableView, indexPath, snapshot in

if let snap = snapshot.value as? Dictionary<String, Any> {
let requestPostDatabase = snap["Request Posts"]
print(requestPostDatabase)
}

let cell = tableView.dequeueReusableCell(withIdentifier: "postCell", for: indexPath) as! PostCell
return cell
}

我也试过,

let snap = snapshot.child("Request Posts")

获取 Request Posts 数据库,但由于某种原因 child() 函数不可用。

最佳答案

我认为您需要使用 @escaping 来实现从 Firebase 获取数据的功能。

就像您在 Controller 中拥有单元格数据数组一样:

var arrayOfData: [DataItem]()

然后是获取数据的函数:

static func getData(completion: @escaping (_ data: [DataItem]) -> Void) {
var data = [DataItem]()
let ref = FIRDatabase.database().reference().child(...).child... // your ref
ref.observeSingleEvent(of: .value, with: { snapshot in
// here you need to parse data and fill array from snapshot
// and data.append(/*your parsed data*/)
// then return data to completion handler
completion(data)
})
}

像这样。你应该明白了。

然后你可以,例如,在 viewDidLoad() 中使用函数:

getData(completion: { newData in 
self.data = newData
self.tableView.reloadData()
})

然后你可以使用这个数组来填充你的tableView

希望对你有帮助

关于ios - 使用适用于 iOS 的 FirebaseUI 访问数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43755600/

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