#ios #arrays #swift #firebase #firebase-realtime-database
#iOS #массивы #swift #firebase #firebase-realtime-database
Вопрос:
У меня есть массив, в котором всегда будет 4 разных AutoID (он берет 4 случайным образом из узла в firebase) — это randomKeyArray, показанный на изображении:
Я хотел бы использовать AutoID из randomKeyArray для получения дополнительной информации из firebase (полное имя пользователя и profileImageUrl), установите их в отдельные массивы (names, profileImages и namesWithUrl), чтобы я мог использовать их позже.
Я бы хотел, чтобы randomKeyArray [0] соответствовал names[0], profileImages[0], namesWithUrl [0] и то же самое с 1,2,3 и т.д.
Прямо сейчас массивы names, profileImages и namesWithUrl пусты, и я не уверен, почему — был бы признателен за любую помощь 🙂
// the arrays are stored outside the viewDidLoad
var randomKeyArray = [String]()
var names = [String]()
var profileImages = [String]()
var namesWithUrl = [String : String]()
//EDIT: this for loop is where i get the random autoId's for the myKeyArray
for _ in 0...3 { //will iterate four times
let count = self.myKeyArray.count //get the number of elements
let randomInt = Int.random(in: 0..<count) //get a random index for the array
let randomUserKey = self.myKeyArray[randomInt]
self.randomKeyArray.append(randomUserKey)
self.myKeyArray.remove(at: randomInt) //remove that object so it's not selected again
}
print(self.myKeyArray)
//for loop is inside a function
for i in 0..<self.randomKeyArray.count {
let thisUserKey = self.randomKeyArray[i]
self.ref.child("users").child(thisUserKey).observeSingleEvent(of: .value, with: { snapshot in
let name = snapshot.childSnapshot(forPath: "fullname").value as! String
let profileImageUrl = snapshot.childSnapshot(forPath: "profileImageUrl").value as! String
self.names.append(name)
self.profileImages.append(profileImageUrl)
self.namesWithUrl[name] = profileImageUrl
//self.currIds.append(self.randomKeyArray)
})
}
Дайте мне знать, если вам понадобится дополнительная информация!
Редактировать:
Я добавил цикл for, в котором я получаю AutoID для randomKeyArray — я также попытался получить имя и изображение профиля, когда randomUserKey вызывается в первом цикле for, но массивы по-прежнему показывают значения 0