在Firebase实时数据库中实施用户名(swift 4)

时间:2018-05-14 07:16:52

标签: swift firebase firebase-realtime-database

首先,对不起我的英语不好并提出一个非常基本的问题。

我在swift& amp; iOS编程以及Firebase实时数据库。

如何将用户的用户名引用到用户的帖子?

我认为userId可以作为一种重新启动的关键。

my JSON structure screenshot

我的最终目标是获取所有帖子(已完成)并拥有发布该帖子的用户名。

我曾经使用PHP和MySQL(以前从未使用过JSON)并且通常没有问题,但我不确定如何在Firebase中实现这个,可能是因为我对查询不太确定

我已经阅读了可用于Firebase和question的查询,但仍然不太确定,因为在我的情况下它有点不同。

谢谢。

2 个答案:

答案 0 :(得分:0)

在你的控制器中,通过id:

从数据库中获取你的帖子
class func getPosterId(post: Post, completion: @escaping ([Post]) -> Swift.Void) {

Database.database().reference().child("posts").observe(.value, with: { (snapshot) in
            if snapshot.exists() {
                var posts = [Post]()

                let values = snapshot.value as! [String: Any]
                let post = values[post.id]
                completion(post)
             }
        })

然后从完成后在ViewController中捕获它并获取其userId

答案 1 :(得分:0)

不幸的是,NoSQL中没有连接。因此,您必须执行另一个请求或复制数据。

执行另一个请求

非常简单,每次您使用用户的用户名时,都会请求它。我不建议您提供您始终需要的信息以及“从不”更改,例如用户名。

复制数据

您可以直接使用post添加用户名,也可以使用Cloud Function数据库触发器自动复制所需的数据。在用户名的情况下建议,但在可变信息的情况下可能会很棘手。