如何获取刚刚在Firebase中推送的对象的密钥?

时间:2017-07-19 19:37:04

标签: android firebase firebase-realtime-database

我想创建一种没有密码和电子邮件的注册。我只使用昵称。所以,我有一个具有昵称字段和其他字段的User类。所以,我想推动新用户和我想要的东西是保存它的密钥,因为我将来需要它时,我必须得到一些用户的数据。那么如何获得已经被推送的对象的密钥呢?

以下是我推送的代码:

User user = new User() ;
user.setNick(nick.getText().toString());
user.setScore(0);


Firebase fire = new Firebase(FirebaseConfig.URL) ;
//how to get key of this object? Is it possible before pushing? 
fire.push().setValue(user);

2 个答案:

答案 0 :(得分:3)

要获取密钥,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference keyRef = rootRef.push();
String key = keyRef.getKey();
keyRef.setValue(user);

Firebase fire = new Firebase(FirebaseConfig.URL) ;
String pushKey = fire.push().getKey();
fire.child(pushKey).setValue(user);

希望它有所帮助。

答案 1 :(得分:2)

在执行push()之前无法获得pushKey。

你可以试试这个。

Firebase fire = new Firebase(FirebaseConfig.URL) ;
String pushKey = fire.push().getKey();
fire.child(pushKey).setValue(user);