每当我推送数据时,我都希望来自firebase的自动生成密钥

时间:2016-09-19 17:32:00

标签: android firebase firebase-realtime-database

到目前为止我尝试的所有方法只返回父键,而不是自动生成的推键。

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但是即使这些也给出了相同的输出。任何帮助将不胜感激!!

1 个答案:

答案 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();
            }
        }
    });