繁体   English   中英

如何从 Firebase 数据库调用帖子 ID

[英]How can I call a post ID from a Firebase Database

我想做的是调用某个帖子 ID:

图片

取决于在 UITableView 上点击哪个单元格,并在不同的 ViewController 上显示来自它的数据。 目前,每个帖子都有不同的 ID 以及上图中显示的数据

我已经看到这种方法用于根据 ID 调用用户名:

let uid = FIRAuth.auth()?.currentUser?.uid
        FIRDatabase.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
            if let dictionary = snapshot.value as? [String: AnyObject] {
                self.userLabel.text = dictionary["username"] as? String
            }
        })

是否可以使用上面屏幕截图中所示的帖子 ID 来执行此操作? 如果是这样,最简单的方法是什么?

好的,我简化了代码只是为了更容易解释。

首先在你的方法之外创建一个名为postID的变量,并将其设置为 FIRDatabase.database().reference().childByAutoID()

let postID = UUID().uuidString

然后在您的 postObject 中添加另一组并设置您之前声明的变量"postID": postID

let postObject: Dictionary<String, Any> = [
                                                "uid": uid,
                                                "title": title,
                                                "price": price,
                                                "rating": rating,
                                                "description": description,
                                                "username" : username,
                                                "image": self.imageFileName,
                                                "postID": self.postID
                                            ]

最后替换FIRDatabase.database().reference().child("posts").childByAutoID().setValue(postObject)

FIRDatabase.database().reference().child("posts").child(self.postID).setValue(postObject)

我遇到了和你类似的情况。 另一种方法是从字典键中获取 postID。

此示例将获取所有 postID,但这只是一个起点。

            let json = JSON(value)
                let keys = value.keys
                for element in keys {
                    var postID = ""
                    for key in keys {
                        if element == key {
                            postID = key
                        }
                    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM