我想创建一种没有密码和电子邮件的注册。我只使用昵称。所以,我有一个具有昵称字段和其他字段的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);
答案 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);