如何立即从关注的用户中检索帖子?

时间:2020-03-05 13:15:42

标签: swift google-cloud-firestore

我想通过以下用户的ID检索他们的帖子。我已经阅读了许多文章,但是还没有找到解决方案。也许,我找的地方不对。

数据库结构:

 Firestore-root
   |
   --- users (collection)
   |     |
   |     --- uid (documents)
   |          |
   |          --- name: "User Name"
   |          |
   |          --- email: "email@email.com"
   |
   --- following (collection)
   |      |
   |      --- uid (document)
   |           |
   |           --- userFollowing (collection)
   |                 |
   |                 --- uid (documents)
   |                 |
   |                 --- uid (documents)
   |
   --- posts (collection)
         |
         --- uid (documents)
              |
              --- userPosts (collection)
                    |
                    --- postId (documents)
                    |     |
                    |     --- title: "Post Title"
                    |     |
                    |     --- date: September 03, 2018 at 6:16:58 PM UTC+3
                    |
                    --- postId (documents)
                          |
                          --- title: "Post Title"
                          |
                          --- date: September 03, 2018 at 6:16:58 PM UTC+3

检索帖子的功能:

static func subscribe(userID: String) -> AppThunkAction {
        AppThunkAction { dispatch, _ in

            let listener = Snapshot<Model.Photo>.listen(.photos(userID: userID), queryBuilderBlock: {
                $0.order(by: .updateTime, descending: true).limit(to: 30)
            }) { result in
                switch result {
                case let .success(photos):
                    dispatch(PhotosAction.updatePhotos(photos: photos))
                case let .failure(error):
                    print(error)
                    // error handling
                    dispatch(PhotosAction.updatePhotos(photos: []))
                }
            }
            dispatch(PhotosAction.updateListener(listener: listener))
        }
    }

1 个答案:

答案 0 :(得分:0)

有一些方法可以实现这一目标。您将需要获取每个用户uid,并将其与帖子中的uid进行比较。我建议您看一下社区帖子Firestore: Queries and Security (Swift)。这篇文章提供了有关如何实现该目标的一些想法。

除此之外,官方文档Querying and filtering data提供了使用Swift进行查询的示例。

下面的其他两篇文章应该为您提供有关使用Swift按ID进行查询的更多见解。

我可以在下面的两个存储库中找到这两个存储库,它们具有Firestore帖子应用程序-不在Swift中-可以帮助您获得有关如何执行查询以及每个用户检索帖子的逻辑的想法。

让我知道信息是否对您有帮助!