Firebase获取最后插入项目的密钥



我有一个数据库引用。

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

我使用将项目添加到数据库

houseReference.push().setValue(house);  

谷歌firebase参考文档说,你可以使用获得最后一个项目的密钥

houseReference.getKey();

但是,这将返回House。我做错了什么?

Firebase没有"最后一个键"的概念。但是,每个DatabaseReference都是对数据库中某个路径的引用,您可以通过调用该路径上的getKey()来获得该路径中的最后一个密钥。因此,如果您调用houseReference.getKey(),您确实会获得house,因为这是它引用的路径中的最后一个密钥

不过,现在我们来谈谈好东西。

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

因此:

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

最新更新