как получить значение [] внутри дочернего элемента в базе данных Firebase - PullRequest
0 голосов
/ 23 октября 2018

Внутри моего кода у меня есть строка кода, в которой он должен извлечь значение userID внутри дочернего " profilepicture ", которое находится внутри дочернего " users"в базе данных Firebase, но я не знаю, как записать это внутреннее значение [].Может ли кто-нибудь мне помочь?

let ref = Database.database().reference()
ref.child("users").queryOrderedByKey().observeSingleEvent(of: .value,         
    let users = DataSnapshot.value as! [String: AnyObject]
    self.user.removeAll()
    for (_, value) in users{
        //let uid = Auth.auth().currentUser!.uid
        if let uid = value["profilepicture.userID"] as? String

1 Ответ

0 голосов
/ 23 октября 2018

Ваш узел users выглядит как массив.Так что это сильно зависит от того, какого пользователя userID вы хотите установить.Таким образом, используя ваш код, попытка должна выглядеть следующим образом

let dbQuery = dbRef.child("users")
dbQuery.observeSingleEvent(of: .value, with: { (snapshot) in
        for child in snapshot.children {
            if  let dataSnapshot = child as? DataSnapshot,
                let valueDict = dataSnapshot.value as? [String: Any] {
                // here valueDict is each user as dictionary
                // here you will need a mechanism to identify the user
                // of which you want to set the `userID` value
                let key = dataSnapshot.key // each users key

                if /* your logic to identify the user based on the key. If this logic satisfy then set it's value */ {
                       dbRef.child("users").child(key).child("profilepicture").child("userID").setValue(YOUR_DESIRED_VALUE_TO_SET)

                   // OPTIMIZATION: if this meant to happen only once use `break` to get out of the loop, because you don't need to iterate the whole loop.
                } 
            }
        }
        print("YOU ARE DONE UPDATING")
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...