我有一个数据库引用。
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);