将唯一密钥 firebase 保存到 child
save unique key firebase to child
我有这样的数据库
"Chats" : {
"-MCzU6r-JqvAkC9unjru" : {
"isSeen" : false,
"message" : "H",
"receiver" : "wwRWdMQ62bNwO09M5LpxXks37442",
"sender" : "R5ICmEp5B6Sbhow523BmQoF6uUG2",
"timestamp" : "1595571732585",
"type" : "text"
}}
我想在我的 child 中保存一个唯一的密钥“-MCzU6r-JqvAkC9unjru”,像这样
"Chats" : {
"-MCzU6r-JqvAkC9unjru" : {
"isSeen" : false,
"message" : "H",
"receiver" : "wwRWdMQ62bNwO09M5LpxXks37442",
"sender" : "R5ICmEp5B6Sbhow523BmQoF6uUG2",
"timestamp" : "1595571732585",
"type" : "text",
"key" : "-MCzU6r-JqvAkC9unjru"
}}
我可以这样做吗?如果我可以如何在我的代码中实现它?
这里是将数据添加到 firebase 的代码
private void sendMessage(final String message) {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
String timestamp = String.valueOf(System.currentTimeMillis());
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("sender", myUid);
hashMap.put("receiver", hisUid);
hashMap.put("message", message);
hashMap.put("timestamp", timestamp);
hashMap.put("isSeen", false);
hashMap.put("type", "text");
databaseReference.child("Chats").push().setValue(hashMap);
您可以执行以下操作:
String key = databaseReference.child("Chats").push().getKey();
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("sender", myUid);
hashMap.put("receiver", hisUid);
hashMap.put("message", message);
hashMap.put("timestamp", timestamp);
hashMap.put("isSeen", false);
hashMap.put("type", "text");
hashMap.put("key",key);
databaseReference.child("Chats").child(key).setValue(hashMap);
使用 getKey()
你可以检索使用 push()
创建的随机 ID,然后将其添加到 hashMap
我有这样的数据库
"Chats" : {
"-MCzU6r-JqvAkC9unjru" : {
"isSeen" : false,
"message" : "H",
"receiver" : "wwRWdMQ62bNwO09M5LpxXks37442",
"sender" : "R5ICmEp5B6Sbhow523BmQoF6uUG2",
"timestamp" : "1595571732585",
"type" : "text"
}}
我想在我的 child 中保存一个唯一的密钥“-MCzU6r-JqvAkC9unjru”,像这样
"Chats" : {
"-MCzU6r-JqvAkC9unjru" : {
"isSeen" : false,
"message" : "H",
"receiver" : "wwRWdMQ62bNwO09M5LpxXks37442",
"sender" : "R5ICmEp5B6Sbhow523BmQoF6uUG2",
"timestamp" : "1595571732585",
"type" : "text",
"key" : "-MCzU6r-JqvAkC9unjru"
}}
我可以这样做吗?如果我可以如何在我的代码中实现它?
这里是将数据添加到 firebase 的代码
private void sendMessage(final String message) {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
String timestamp = String.valueOf(System.currentTimeMillis());
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("sender", myUid);
hashMap.put("receiver", hisUid);
hashMap.put("message", message);
hashMap.put("timestamp", timestamp);
hashMap.put("isSeen", false);
hashMap.put("type", "text");
databaseReference.child("Chats").push().setValue(hashMap);
您可以执行以下操作:
String key = databaseReference.child("Chats").push().getKey();
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("sender", myUid);
hashMap.put("receiver", hisUid);
hashMap.put("message", message);
hashMap.put("timestamp", timestamp);
hashMap.put("isSeen", false);
hashMap.put("type", "text");
hashMap.put("key",key);
databaseReference.child("Chats").child(key).setValue(hashMap);
使用 getKey()
你可以检索使用 push()
创建的随机 ID,然后将其添加到 hashMap