Firebase数据库不等于请求 – 替代解决scheme(适用于iOS)

我正在使用具有Json结构的Firebase数据库来pipe理用户的评论。

{ "post-comments" : { "post-id-1" : { "comment-id-11" : { "author" : "user1", "text" : "Hello world", "uid" : "user-id-2" },.... } 

我想拉所有评论,但不包括当前用户的评论。

在SQL中,这将被翻译成:从后注释select*其中id!=“user-id-2”

据我所知,Firebase数据库不提供基于值的存在排除节点的方法(即:user id!= …)。

因此,是否有其他解决scheme来解决这个问题。 可以通过更改数据库结构,也可以在数据加载完成后处理数据源。

对于后者,我使用了FirebaseTableViewDataSource。 有没有办法在查询后过滤数据?

非常感谢

第一种解决scheme是通过.ChildAdded加载注释,忽略当前user_id的注释

 let commentsRef = self.myRootRef.childByAppendingPath("comments") commentsRef.observeEventType(.ChildAdded, withBlock: { snapshot in let uid = snapshot.value["uid"] as! String if uid != current_uid { //do stuff } }) 

你可以扩展它,并通过.Value载入所有内容,并在代码中迭代子代。 该方法将取决于您正在加载的节点数量.ChildAdded将会降低内存使用量。