Ios 使用阵列中的autoId获取firebase数据,保存到另一个阵列,然后稍后使用

Ios 使用阵列中的autoId获取firebase数据,保存到另一个阵列,然后稍后使用,ios,arrays,swift,firebase,firebase-realtime-database,Ios,Arrays,Swift,Firebase,Firebase Realtime Database,我有一个数组,它总是有4个不同的autoId(它从firebase上的一个节点随机抓取4个)-它是图中所示的randomKeyArray: 我想使用randomKeyArray中的AutoID从firebase(用户全名和profileImageUrl)获取更多信息,将它们设置在单独的数组(名称、profileImages和namesWithUrl)中,以便以后使用它们 我希望randomKeyArray[0]与名称[0]、profileImages[0]、namesWithUrl[0]以及1

我有一个数组,它总是有4个不同的autoId(它从firebase上的一个节点随机抓取4个)-它是图中所示的randomKeyArray:

我想使用randomKeyArray中的AutoID从firebase(用户全名和profileImageUrl)获取更多信息,将它们设置在单独的数组(名称、profileImages和namesWithUrl)中,以便以后使用它们

我希望randomKeyArray[0]与名称[0]、profileImages[0]、namesWithUrl[0]以及1、2、3等相同

现在,names、profileImages和namesWithUrl数组都是空的,我不知道为什么-希望您能提供帮助:)

//数组存储在viewDidLoad外部
var randomKeyArray=[String]()
变量名称=[String]()
var profileImages=[String]()
var namesWithUrl=[String:String]()
//编辑:这个for循环是我获取myKeyArray的随机autoId的地方
对于0…3中的u,{//将迭代四次
让count=self.myKeyArray.count//获取元素数
设randomInt=Int.random(in:0。。
// 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)
     })
 }