Вот некоторая информация из службы поддержки Firebase, которая может служить объяснением и частичным ответом.
Если у вас есть DatabaseReference на root базы данных, ключ будет равен нулю.
, что означает, что ключ будет равен нулю в случае DatabaseReference для корня или будет иметь значение для других ссылок, следовательно, он будет определяться какнеобязательно.Так что это имеет смысл
var key:String? { get }
, который затем имеет доказательство:
var ref: DatabaseReference!
ref = Database.database().reference() //points to the root ref
print(ref)
print(ref.key)
и вывод
https://some_firebase.firebaseio.com
nil
Если вы думаете об этом, учитывая концептуальную базу Firebaseссылка, подобная этой,
let usersRef = "https://some_firebase.firebaseio.com/users"
, когда вы запрашиваете свойство ключа, она получается из пути
print(usersRef.key) //prints Optional("users")
"https://some_firebase.firebaseio.com/users"
^^^^^ the key
, а в случае корневой базы данных DatabaseReference нет пути для получения ключа.