将数据添加到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
答案 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