Swift Firebase Сохранить / обновить несколько родителей с одинаковыми дочерними значениями - PullRequest
0 голосов
/ 20 марта 2019

У меня есть массив строк, который является "UID" пользователей.Я пытаюсь добавить data / children к этим множественным "uid".Добавить детей или обновить их для отдельных родителей / пользователей легко, и я понимаю, как это сделать.Проблема в том, что этот массив может содержать 1 или 50 идентификаторов.Могу ли я взять эти uid и затем обновить их до того же значения?Я не уверен, какой код предоставить, так как я просто пытаюсь все, чтобы атаковать это.

С кодом ниже, это я отправить сообщение другим пользователям.

Массив строк uid

var data = [String]()

Пример кода, когда я отправлял сообщение двум пользователям, просто хотел указать здесь что-то, что я знаю, какобновить / сохранить данные

private func sendMessageWithProperties(_ properties: [String: Any]) {
    let businessRef = Database.database().reference().child("Business Group Chats Messages").child((group?.uid)!).child((Auth.auth().currentUser?.uid)!)
    let ref = Database.database().reference().child("Business Group Chats Messages").child((Auth.auth().currentUser?.uid)!).child((group?.businessName)!)
    let businesChildRef = businessRef.childByAutoId()
    let childRef = ref.childByAutoId()
    let fromID = Auth.auth().currentUser!.uid
    let timeStamp = Int(Date().timeIntervalSince1970)
    var value:[String: Any] = ["fromId" : fromID, "timeStamp" : timeStamp, "name": self.loggedInUserData?["name"] as? String]

    properties.forEach { (k,v) in
        value[k] = v
    }

    childRef.updateChildValues(value) { (err, ref) in
        if err != nil {
            print(err!)
            return
        }

        Database.database().reference().child("Business Group Chats").child((self.group?.uid)!).child((Auth.auth().currentUser?.uid)!).updateChildValues(["last message" : childRef.key!, "timestamp" : timeStamp, "businessName":(self.group?.businessName)!])

        Database.database().reference().child("Business Group Chats").child((Auth.auth().currentUser?.uid)!).child((self.group?.uid)!).updateChildValues(["last message" : childRef.key!, "timestamp" : timeStamp])

        self.inputContainerView.inputTextField.text = nil
    }
}

1 Ответ

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

Вот я взял этот массив "uid's", а затем вытащил и распечатал, чтобы я мог получить доступ к каждому "uid" через массив строк.Позволяя мне получить доступ, теперь я могу добавлять данные к каждому.

Database.database().reference().child("Businesses").observe(.value, with: { snapshot in
        if snapshot.exists() {
            self.businessUID = snapshot.value as? NSDictionary
            if let dict = snapshot.value as? NSDictionary {
                for item in dict {
                    let json = JSON(item.value)
                    let businessUid = json["uid"].stringValue
                    for uid in self.data {
                        if uid == businessUid {
                            //print(uid)
                            self.businessessuids = uid
                            print(self.businessessuids)

                            Database.database().reference().child("Businesses").child(self.businessessuids).observe(.value, with: { snapshot in
                                print(snapshot)
                                print("Trying to pull data from multiple strings right here this shoudld work")
                            })
                            print("printing the values to match with the string UID's")
                        }
                    }
                }
            }
        } else {
            print("does not exist")
        }
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...