Я пытаюсь удалить заблокированных пользователей из словаря [String: Any], который я извлекаю из базы данных. На первый хватаю список UID о том, что текущий пользователь заблокирован:
var updatedBlockList: Any?
func findBlockUsers() {
// find current users list of blocked users
guard let currentUserUid = Auth.auth().currentUser?.uid else { return }
let blockedUsers = Database.database().reference().child("users").child(currentUserUid)
blockedUsers.observeSingleEvent(of: .value, with: { (snapshot) in
guard let userIdsDictionary = snapshot.value as? [String: Any] else { return }
userIdsDictionary.forEach({ (key, value) in
guard let userDictionary = value as? [String: Any] else { return }
var blockedList : Any
blockedList = userDictionary.keys
print(blockedList)
self.updateBlockList(blockedList: blockedList)
})
})
}
func updateBlockList(blockedList: Any) {
updatedBlockList = blockedList
print(updatedBlockList)
}
Если я печатаю updatedBlockList я получаю: [ "gdqzOXPWaiaTn93YMJBEv51UUUn1", "RPwVj59w8pRFLf55VZ6LGX6G2ek2", "xmigo8CPzhNLlXN4oTHMpGo7f213"]
1005 *Теперь я хочу взять эти UID (которые будут ключом в UserIdsDictionary и удалить их после того, как я потяну ВСЕХ пользователей:
fileprivate func fetchAllUserIds() {
let ref = Database.database().reference().child("users")
ref.observeSingleEvent(of: .value, with: { (snapshot) in
guard let userIdsDictionary = snapshot.value as? [String: Any] else { return }
userIdsDictionary.forEach({ (key, value) in
// attempting to remove the blocked users here without any luck
var updatedKey = key as String?
updatedKey?.remove(at: self.updatedBlockList as! String.Index)
print(updatedKey!)
guard let userDictionary = value as? [String: Any] else { return }
let user = User(uid: key, dictionary: userDictionary)
self.fetchPostsWithUser(user: user)
})
}) { (err) in
print("Failed to fetch following user ids:", err)
}
}
Я получаю эту ошибку при попытке удалить: Не удалось привести значение типа 'Swift.Dictionary.Keys '(0x1de2f6b78) на' Swift.String.Index '
Я уверен, что я поступаю неправильно, но я знаю, что я близок. Конечная цель состоит в том, чтобывозьмите UID заблокированных пользователей и удалите их из словаря. Любая помощь будет очень признательна !!