Я пытаюсь извлечь автоматически сгенерированный идентификатор в документе, чтобы использовать его в другом месте.
Вот полный код:
mStartChatButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final HashMap<String, Object> myChatFields = new HashMap<>();
myChatFields.put("dateJoined", ServerValue.TIMESTAMP );
myChatFields.put("status", "");
myChatFields.put("snoozeUntil", "");
myChatFields.put("myCharacter", "");
myChatFields.put("requestedCustomChatCode", "");
myChatFields.put("groupChatName", "");
myChatFields.put("toInviteMembers", "");
myChatFields.put("lastMessage", "");
myChatFields.put("lastMessageTimeStamp", ServerValue.TIMESTAMP);
mWhammyUsersCollection.document(mCurrentUserId).collection("my-chats")
.document().set(myChatFields)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
String chatId = mWhammyUsersCollection.document(mCurrentUserId)
.collection("my-chats").document().getId();
Log.v("CHATS", chatId);
myChatFields.put("chatCardId", chatId);
Intent goToChatActivity = new Intent(UserProfileActivity.this,
ChatActivity.class);
startActivity(goToChatActivity);
}
});
Как видите, яЯ использую код, показанный ниже, чтобы сгенерировать коллекцию под названием «my-chats», а .document () создает автоматически сгенерированный идентификатор документа.
mWhammyUsersCollection.document(mCurrentUserId).collection("my-chats")
.document().set(myChatFields)
.addOnSuccessListener(new OnSuccessListener<Void>() {
Затем я использую строку кодапоказано ниже, чтобы попытаться получить идентификатор из этого документа.
String chatId = mWhammyUsersCollection.document(mCurrentUserId)
.collection("my-chats").document().getId();
Наконец, используя приведенную ниже строку кода, я пытаюсь поместить ее в созданную мной HashMap.
myChatFields.put("chatCardId", chatId);
У меня две основные проблемы:
1) Строка кода, которую я использую для извлечения идентификатора документа, не работает и извлекает какой-то другой новый автоматически сгенерированный идентификатор (я думаю, это так).потому что я использую метод .document () перед методом .getId ()).
2) Кроме того, информация по какой-то причине не добавляется в HashMap с последней строкой кода, которую я поместил.
Как я могу решить эти две проблемы?
Чтобы объяснить это немного болееre графически:
Изображение базы данных
Я пытаюсь получить «1» и добавить его в области «2».