【发布时间】:2018-10-17 17:49:42
【问题描述】:
我正在尝试提取文档下的自动生成的 ID,以便我可以在其他地方使用它。
这里是完整的代码:
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() 正在创建自动生成的文档 ID。
mWhammyUsersCollection.document(mCurrentUserId).collection("my-chats")
.document().set(myChatFields)
.addOnSuccessListener(new OnSuccessListener<Void>() {
然后我使用下面显示的代码行尝试从该文档中获取 id。
String chatId = mWhammyUsersCollection.document(mCurrentUserId)
.collection("my-chats").document().getId();
最后使用下面这行代码,我尝试将其放入我创建的 HashMap 中。
myChatFields.put("chatCardId", chatId);
我有两个主要问题:
1) 我用来提取文档 ID 的代码行不起作用,并且正在提取其他一些新的自动生成的 ID(我猜这是因为我之前使用过 .document() 方法.getId() 方法)。
2)由于某种原因,我输入的最后一行代码也没有将信息添加到 HashMap 中。
我该如何解决这两个问题?
更形象地解释它:
我正在尝试检索“1”并将其添加到“2”区域。
【问题讨论】:
标签: java android firebase google-cloud-firestore