Firebase не имеет понятия «последний ключ».Но каждый DatabaseReference
является ссылкой на путь в базе данных, и вы получаете последний ключ в этом пути, вызывая getKey()
для него.Поэтому, если вы позвоните houseReference.getKey()
, вы действительно получите house
, поскольку это последний ключ в пути, на который он ссылается.
Теперь мы перейдем к хорошему материалу.
КогдаВы вызываете push()
Firebase генерирует (в клиенте) новый уникальный ключ и возвращает новый DatabaseReference
, который указывает на этот ключ по текущему пути.Таким образом, houseReference.push()
возвращает новый DatabaseReference
в новое уникальное дочернее местоположение.А это значит, что вы можете позвонить getKey()
на этом новом DatabaseReference
, чтобы получить последний ключ этого нового местоположения.
Итак:
DatabaseReference newRef = houseReference.push();
System.out.println(newRef.getKey());
newRef.setValue(house);