到目前为止我尝试的所有方法只返回父键,而不是自动生成的推键。
String key = rootref.child("user").push().getKey();
newUser.setUid(key);
Log.i("#####",key);
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put(key,newUser);
rootref.updateChildren(childUpdates);
这里getkey()
正在向我返回“user”,而我想要自动生成的密钥。在此之前我尝试使用子事件监听器和listenerforsinglevaluedevent
但是即使这些也给出了相同的输出。任何帮助将不胜感激!!
答案 0 :(得分:0)
我正在检查您的代码,但没有看到setValue。这就是getKey返回“user”的原因。应该是这样的
rootref.child("user").push().setValue(UserObject)
rootref.push().setValue(UserObject).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(getApplicationContext(),rootref.push().getKey(),Toast.LENGT_LONG).show();
}
}
});