【发布时间】:2018-06-30 17:05:51
【问题描述】:
我是Firebase Realtime Database的新手,我想在不使用push()的情况下在父节点下生成唯一密钥。由于push()生成随机唯一密钥128 位。
我希望我的当前日期是父节点下的唯一键。如果日期与父节点的最后一个子节点不匹配,则它必须在父节点中生成一个新节点。
下面是我的代码:
Firebase reference = new Firebase("https://maps-abcdxyz.firebaseio.com/user");
if (s.equals("null"))
{
String key = reference.child("User").push().getKey();
String inStatus = "1";
UserData user = new UserData(attendIN,"0","0","0");
Map<String, Object> postValues = user.inoutTime();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put( "/" + username + "/" + month_name + "/" + todayDate ,postValues);
reference.updateChildren(childUpdates);
Toast.makeText(getApplicationContext(),"In Time Submitted",Toast.LENGTH_SHORT).show();
}
else
{
if(jInStatus.equals("1"))
{
Toast.makeText(getApplicationContext(),"In time already Submitted",Toast.LENGTH_SHORT).show();
}
else
{
Firebase referenceDate = new Firebase("https://maps-abcdxyz.firebaseio.com/user/" + username +
"/" + month_name);
String inStatus = "1";
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();
DatabaseReference myRef = mDatabase.getReference("/" + "user" + "/" + username + "/"+ month_name + "/");
UserData user = new UserData(attendIN,inStatus,"0","0");
Map<String, Object> postValues = user.inoutTime();
Map<String, Object> childUpdates = new HashMap<>();
myRef.child(todayDate).setValue(postValues);
Toast.makeText(getApplicationContext(),"In Time Submitted",Toast.LENGTH_SHORT).show();
}
}
【问题讨论】:
标签: android firebase firebase-realtime-database