为什么不删除Cloud Firestore数据库中的文档?

时间:2018-01-20 12:44:53

标签: java android firebase google-cloud-firestore

我有以下数据库结构:

    private void dataGridYT_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {

                    if (dataGridYT.Columns[e.ColumnIndex].Name == "Thumbnail")
                {
                    e.Value = GetImageFromUrl("https://i.ytimg.com/vi/oZItXZtkmzg/default.jpg");
                    dataGridYT.Columns[e.ColumnIndex].DefaultCellStyle.BackColor = Color.Azure;
                }
            }
 private object GetImageFromUrl(string url)
            {
                HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);

                using (HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse())
                {
                    using (Stream stream = httpWebReponse.GetResponseStream())
                    {
                        return Image.FromStream(stream);
                    }
                }
            }

我使用以下代码删除文档:

Firestore-root
   |
   --- users (collection)
   |     |
   |     --- userId (document)
   |            |
   |            --- //user details
   |
   --- products (collection)
          |
          --- listId (document)
                 |
                 --- listProducts (collection)
                         |
                         --- productId
                                 |
                                 --- //product details

第一行代码完美无缺,但第二行没有删除rootRef.collection("users").document(userId).delete(); //works fine rootRef.collection("products").document(listId).delete(); 文档。是因为它下面有一个子集合还是我做错了什么?

如何删除整个list文档及其下面的所有内容?

谢谢!

1 个答案:

答案 0 :(得分:2)

删除该文档时,不会自动删除嵌套在文档下的集合。当您删除文档本身时,Firebase控制台将以斜体显​​示文档ID。文档本身不再存在(当你选择它时可以看到它,因为它没有任何字段),但嵌套的集合仍然可以访问。

所以我怀疑products文档已经消失,但嵌套的集合仍然存在。正如Firestore documentation on deleting collection所述,您需要从集合中删除文档以删除它。