首页 > 解决方案 > Firebase 获取最后插入项目的密钥

问题描述

我有一个数据库参考。

houseReference = FirebaseDatabase.getInstance().getReference("House");

我使用以下方法将项目添加到数据库:

houseReference.push().setValue(house);  

Google firebase 参考文档您可以使用

houseReference.getKey();

但是,这会返回House。我究竟做错了什么?

标签: androidfirebasefirebase-realtime-database

解决方案


Firebase 没有“最后一个键”的概念。但是每个DatabaseReference都是对数据库中路径的引用,您可以通过调用它来获取该路径中的最后一个键getKey()。所以如果你打电话给你,houseReference.getKey()你确实得到house了,因为那是它所指的路径中的最后一个键。

现在我们得到了好东西。

当您调用push()Firebase 时(在客户端)生成一个新的唯一键,并返回一个DatabaseReference指向当前路径下该键的新键。所以houseReference.push()返回一个新DatabaseReference的、唯一的子位置。这意味着您可以调用getKey()这个 newDatabaseReference来获取该新位置的最后一个键。

所以:

DatabaseReference newRef = houseReference.push();
System.out.println(newRef.getKey());
newRef.setValue(house);  

推荐阅读