Как получить сообщения от следующих пользователей сразу? - PullRequest
0 голосов
/ 05 марта 2020

Я хотел бы получить сообщения от следующих пользователей по их идентификаторам. Я просмотрел много статей, но пока не нашел решения. Может быть, я не смотрю в нужном месте.

Структура базы данных:

 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 голосов
/ 06 марта 2020

Есть несколько способов, которыми вы можете достичь этого. Вам нужно будет получить uid для пользователей и сравнить его с uid из сообщений. Я бы порекомендовал вам взглянуть на сообщение сообщества Firestore: Queries and Security (Swift) . В этом посте представлены некоторые идеи о том, как этого добиться.

Кроме того, в официальной документации Запрос и фильтрация данных приведены примеры запросов со Swift.

Эти два других ниже посты должны предоставить вам некоторые дополнительные сведения о запросах с помощью Swift, для идентификаторов.

Ниже я могу найти эти два репозитория, в которых есть почтовые приложения Firestore - не в Swift - которые также могут помочь вам получить идеи о том, как выполнять запросы и логи c для получения сообщений от пользователя.

Дайте мне знать, помогла ли вам информация!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...