从push()方法自定义Firebase自定义键

时间:2017-01-23 17:09:13

标签: android firebase firebase-realtime-database

将数据添加到Firebase实时数据库中的列表时,template<typename T> auto GetBySide(const Side &side, const T& twoSided) -> decltype((twoSided.a)) { return side == Side::A ? twoSided.a : twoSided.b; } // Using comma operator to trick compiler so it doesn't think that this is the same as above template<typename T> auto GetBySide(const Side &side, const T &twoSided) -> decltype((0, twoSided.a1)) { return side == Side::A ? twoSided.a1 : twoSided.b1; } // See comment above template<typename T> auto GetBySide(const Side &side, const T &twoSided) -> decltype((0, 0, twoSided.a2)) { return side == Side::A ? twoSided.a2 : twoSided.b2; } 的替代方法是什么?我想使用自己的自定义键而不是生成的密钥。我试图在新用户注册的任何时候在我的数据库中为push()列表添加新的用户名。

users

3 个答案:

答案 0 :(得分:0)

推送ID是一种非神奇的,良好documented方式,可以生成统计上保证为唯一键的方式。

如果您想要使用自己的ID,请改用child()

ref.child("myOwnId").setValue(...);

更新

通常,您希望将用户存储在其uid下:

UserInformation userInformation = new UserInformation(username); 
String uid = task.getUser().getUid();
DatabaseReference userRef = databaseReference.child("users").child(uid);
userRef.setValue(userInformation);

答案 1 :(得分:0)

  

这是我要添加的“自定义ID”

     String srolls = rollno.getText().toString();

      reff = FirebaseDatabase.getInstance().getReference().child("student").child(srolls);

创建了一个散列图来存储数据...

            HashMap<String ,Object> map = new HashMap<>();
            map.put("fname",fname.getText().toString()); //taking from edit text
            map.put("lname",lname.getText().toString());//taken from edit text
            map.put("mac",mac.getText().toString()); //taken from edit text
            reff.setValue(map); //setting the text value in the database
  

输出1

答案 2 :(得分:0)

您可以先按一下键,然后再为其设置值。

myFormattingFunctionForNumbers