将新数据推送到firebase数据库时设置自定义键

Vic*_*enz 37 java android firebase firebase-realtime-database fire-sharp

好吧,我是Firebase的新手,我希望在将新数据推送到数据库时拥有自己的密钥.

问题:

FireBase.push().setValue(mapped_values);
Run Code Online (Sandbox Code Playgroud)

这给出了如下结构:

 数据库输出

如何在那里创建自己的自定义密钥?如用户名或其他东西.

Fra*_*len 121

通话push()将为您生成一个密钥.

如果您使用child(),您可以自己确定它们的键/路径.

ref.child("Victor").setValue("setting custom key when pushing new data to firebase database");
Run Code Online (Sandbox Code Playgroud)

  • 2020 年,应该使用 `set()` 而不是 `setValue()` (7认同)
  • 构造函数中的@trojan设置:构造函数(私有db:AngularFireDatabase)你可以这样做:this.db.database.ref().child('somechild').set('somevalue') (5认同)
  • 他没有将其标记为答案,因为它没有回答他的问题,因为 Firebase 会自动生成一个带有随机密钥的孩子,无论您推入或设置到数据库中。 (2认同)

iqb*_*one 8

        String key="1234567sdfsf8";
        //custom object
        User user=new User();
        DatabaseReference mDatabase;
        mDatabase = FirebaseDatabase.getInstance().getReference();
        mDatabase.child("Users").child(key).setValue(user);
Run Code Online (Sandbox Code Playgroud)


小智 7

作为对最佳答案的更新,Firebase API 已更改并且setValue()不再工作。现在您必须改用该set()函数:

ref.child("Victor").set("setting custom key when pushing new data to firebase database");
Run Code Online (Sandbox Code Playgroud)