Этот код предназначен для базы данных Firebase Real Time, а снимок экрана - для Cloud Firestore. Они совершенно разные и никак не связаны.
Если вы хотите прочитать данные, показанные на скриншоте, вам необходимо использовать документацию Cloud Firestore .
DocumentID 'Roy ...' появляется, когда вы не Не назначайте документу идентификатор ... он сгенерирует его автоматически.
Кроме того, измените структуру Firestore, чтобы использовать uid пользователя в качестве идентификатора документа. Таким образом, это будет выглядеть так:
users //the collection
uid_0 //the document with documentID = a users uid
first_name: "Hank"
last_name: "Jones"
user_name: "Hankster"
uid_1
first_name: "Leroy"
last_name: "Jenkins"
user_name: "Leeeerrroooyyy"
, а затем код для чтения определенного c имени пользователя на основе uid:
func readUserName() {
let users = self.db.collection("users")
let thisUser = users.document(the users uid)
thisUser.getDocument(completion: { documentSnapshot, error in
if let error = error {
print(error.localizedDescription)
return
}
guard let snap = documentSnapshot else { return }
let docId = snap.documentID
let userName = snap.get("user_name") as? String ?? "No Name"
print(userName)
})
}
Также обратите внимание, что вам нужно будет пройти аутентификацию в Firestore для чтения любых данных или , чтобы изменить правила безопасности, чтобы разрешить чтение любому. Обычно это не очень хорошая идея, но когда вы только начинаете, все в порядке.