Swift / Firestore / Cloud Functions - Отправить сообщение случайному пользователю - PullRequest
0 голосов
/ 07 марта 2019

Я могу отправить созданный документ в Firestore, но я хотел знать, есть ли способ добавить n чисел userIDs / user documentID в массиве к этому документу из swift или в Cloud Functions в машинописи,

Я понимаю, что могу запросить и получить всех пользователей из коллекции пользователей в массиве, а затем получить n случайных пользователей и добавить их в документ, который будет создан в Firestore, но если у меня миллион пользователей, то это 'Я буду читать миллион, и я пытаюсь избежать этого.

Код

    if let data = self.imageView.image?.pngData() {
        let postID = APIs.posts.collection.document()
        Services.storage.upload(path: "posts/\(postID).png", data: data, onSuccess: { (url) in
            Services.crud.create(
                ref: APIs.posts.collection.document(),
                dict: [
                    "createdAt": Date(),
                    "fromUser": APIs.users.currentUserRef,
                    "post": url,
                    "timer": 5,
                    //"toUsers": [userID1, userID2, userID3, etc...] <- How I want to end up in Firestore
                    "type": "Image"
                    ] as [String: Any],
                onSuccess: {
                    self.openCamera()
            }) { (error) in
                print(error)
            }
        }) { (error) in
            print(error)
        }
    }

1 Ответ

0 голосов
/ 07 марта 2019

Если вы хотите знать все идентификаторы документов в коллекции, вам все равно придется запросить всю коллекцию, чтобы получить все идентификаторы. В Firestore нет бесплатной операции «получить все идентификаторы». Операция по поиску рандомизированной выборки документов отсутствует.

...