java - Firestore 创建集合而不添加任何文档
问题描述
我想创建一个集合而不在其中创建任何文档。但不是先创建文档,然后删除文档。我尝试了一些东西,但是当我删除文档时,我的收藏也被删除了。
FirebaseFirestore db = FirebaseFirestore.getInstance();
DocumentReference roomReference = db.collection("messagingRooms").document();
List<String> partners = new ArrayList<>();
partners.add("my_id");
partners.add("it's id");
Map<String ,Object> newRoom = new HashMap<>();
newRoom.put("partners", partners);
newRoom.put("roomID", roomReference.getId());
roomReference.set(newRoom)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Map<String, Object> newMessage = new HashMap<>();
DocumentReference messageReference = roomReference.collection("messages").document();
messageReference.set(newMessage)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
db.collection("messagingRooms")
.document(roomReference.getId())
.collection("messages")
.document(messageReference.getId())
.delete()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.v("Mok", messageReference.getId());
}
});
}
});
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.v("Error_1", e.getMessage());
}
});
解决方案
在 Firestore 中没有任何文档就无法创建集合。如果你查看官方文档,最后一段说:
您不需要“创建”或“删除”集合。在集合中创建第一个文档后,集合就存在了。如果您删除集合中的所有文档,则它不再存在。
因此,一个集合至少需要一个文档。
推荐阅读
- c# - 你如何重新扭曲一个点?
- python - 这是什么:(冒号)在 Python 机器学习中?
- node.js - 使异步函数返回一个 Promise
- tensorflow - 2020 年我应该使用 tf.keras 还是 keras?
- amazon-web-services - aws athena:列需要如何制作过滤器
- firebase - React Native Firebase v6 推送通知
- python - 使 Flask 应用程序在我的 LAN 上可用时出错
- rx-java - 在链上订阅时嵌套的 Maybe<> 不会执行
- ssl - 如何将证书与密钥结合起来并输出 pem 文件?
- javascript - 正则表达式在JS中过滤期间多次匹配同一对象