Swift Firebase - получение нескольких идентификаторов пользователя и добавление этих идентификаторов ребенку - PullRequest
0 голосов
/ 14 декабря 2018

Я думал об этом, но подумал, что опубликую вопрос, чтобы получить больше мыслительной силы или посмотреть, возможно ли это.Я собираю несколько UID, а затем хочу взять эти UID и добавить их к ребенку в моей базе данных, а затем добавить к ним дополнительные данные.Поскольку они являются uid, я не могу получить к ним доступ по отдельности, что было бы простым вызовом «обновить значения» в firebase, так как я могу взять этот список uid, а затем добавить их в дочерний элемент, чтобы они стали их отдельными дочерними элементами, а затем добавить значенияим?Я просто думаю о том, как бы установить этот вызов в firebase, чтобы сказать «добавьте каждый из этих uid как своего собственного потомка».

Как я получаю UID

func getEmployees() {
   let employees =  Database.database().reference().child("Businesses").child(self.otherUser?["uid"] as! String).child("registered_employees").observe(.childAdded, with: { (snapshot) in
        if snapshot.exists() {
            let employess = snapshot.childSnapshot(forPath: "uid")
            print(employess)
        } else {
            print("didnt call right values")
        }
    })
}

образец данных, который я бы добавил к UID child

let userMessageRef = Database.database().reference().child("user-messages").child(fromID).child(toID)
        let messageId = childRef.key
        userMessageRef.updateChildValues([messageId!:1])

Код прямо над ^^^^ Я бы хотел, чтобы идентификаторы были в "toID", а затем добавили "messageId" к этим идентификаторам

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

1 Ответ

0 голосов
/ 15 декабря 2018

Я думаю, что понимаю, поэтому позвольте мне попробовать ответить на примере.То, как мы получаем идентификаторы, которые мы хотим записать, не указано в этом вопросе, поэтому давайте попробуем это:

Предположим, у нас есть узел пользователей, в котором хранятся наши пользователи, и если им нравится пицца

users
   uid_0 //the Firebase generated uid
      name: "Richie"
      likes_pizza: true
   uid_1
      name: "Marion"
      likes_pizza: false
   uid_2
      name: "Fonzi"
      likes_pizza: true
   uid_3
      name: "Howard"
      likes_pizza: false

что мы хотим сделать, чтобы пользователи, которым нравится пицца, создали новый узел и сохранили каждое из идентификаторов UID как родительское, а затем дочернее от их имени.

let usersRef = self.ref.child("users")
let pizzaQueryRef = usersRef.queryOrdered(byChild: "likes_pizza").queryEqual(toValue: true)
pizzaQueryRef.observeSingleEvent(of: .value, with: { snapshot in
    guard let allUsers = snapshot.children.allObjects as? [DataSnapshot] else {return}
    for user in allUsers {
        let key = user.key
        let name = user.childSnapshot(forPath: "name").value as! String
        let pizzaRef = self.ref.child("pizza_lovers")
        let aPizzaLoverRefUid = pizzaRef.child(key).child("their_name")
        aPizzaLoverRefUid.setValue(name)
    }
})

, поэтому этот код запрашивает всепользователи, которым нравится пицца (которая позволяет нам получать доступ к их UID), а затем (в зависимости от вопроса) добавить их к ребенку в базе данных, а затем добавить к ним дополнительные данные

, а затем хотят принятьэти UID и добавить их к ребенку в моей базе данных, а затем добавить к ним дополнительные данные

результат будет

pizza_lovers
   uid_0
      their_name: "Richie"
   uid_2
      their_name: "Fonzi"

Дайте мне знать, если я неправильно понял вопрос, и я будуобновить.

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