从 Firebase 获取 tableview 信息
Posted
技术标签:
【中文标题】从 Firebase 获取 tableview 信息【英文标题】:get tableview information from Firebase 【发布时间】:2017-10-25 01:18:45 【问题描述】:我有一个从 Firebase 获取某些帖子的功能
var posts = NSMutableArray()
override func viewDidLoad()
super.viewDidLoad()
FIRDatabase.database().reference().child("Likes").child(self.loggedInUser!.uid).observe(.childAdded, with: (snapshot) in
self.ID = snapshot.key
print(self.ID!)
)
loadData()
func loadData()
FIRDatabase.database().reference().child("books").child(self.ID!).observeSingleEvent(of: .value, with: (snapshot:FIRDataSnapshot) in
if let postsDictionary = snapshot .value as? [String: AnyObject]
for post in postsDictionary
self.posts.add(post.value)
self.SoldTableView.reloadData()
)
现在我收到一个错误
FIRDatabase.database().reference().child("books").child(self.ID!).observeSingleEvent(of: .value, with: (snapshot:FIRDataSnapshot) in
说致命错误:在展开可选值时意外发现 nil
【问题讨论】:
***.com/questions/40459460/…的可能重复 某些值是非字符串属性,而您只转换为字符串,我敢打赌 Price 是 Firebase 数据库中的浮点或整数值,cell.Price.text = (post["Price"] as! NSString).doubleValue
可能会解决问题
@KarloA.López 不,那没用
你所有的值实际上都是字符串? cell.Price.text = "\(post["Price"])"
尝试将数据显示为附加文本
@KarloA.López 我改变了我的问题,但我仍然遇到问题
【参考方案1】:
您似乎是在强制解开一个可选的 (self.ID),它是 nil,这就是它抛出错误的原因。
在使用该值之前,您应该安全地解开可选项:
if let ID = self.ID
FIRDatabase.database().reference().child("books").child(ID).observeSingleEvent(of: .value, with: (snapshot:FIRDataSnapshot) in
if let postsDictionary = snapshot .value as? [String: AnyObject]
for post in postsDictionary
self.posts.add(post.value)
self.SoldTableView.reloadData()
)
有关选项的更多信息,请参阅此处: What does "fatal error: unexpectedly found nil while unwrapping an Optional value" mean?
【讨论】:
现在我没有收到任何错误,我的表格视图中也没有显示任何内容,所以我不确定如何从那里开始。这就是我想要完成的;我有一个名为 like 的节点,在该节点中,有登录用户喜欢的帖子 ID。我想获取这些 ID 并进入书籍节点,查找它们并将它们显示在我的表格视图中。以上是关于从 Firebase 获取 tableview 信息的主要内容,如果未能解决你的问题,请参考以下文章
使用 firebase 连接到 Tableview 的搜索栏
从 Firebase 获取特定的 .childrenCount
如何初始加载 UITableView 然后观察 Firebase 节点以更改在 Swift 中刷新 tableview?