Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Firestore删除子集合中的所有文档_Ios_Firebase_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Ios Firestore删除子集合中的所有文档

Ios Firestore删除子集合中的所有文档,ios,firebase,google-cloud-firestore,google-cloud-functions,Ios,Firebase,Google Cloud Firestore,Google Cloud Functions,在我的云Firestore设置(iOS/Swift应用程序)中,我有一个Post集合和一个Likes子集合。Likes子集合有一个文档,其中包含喜欢该帖子的用户的信息,文档ID是喜欢该帖子的用户ID 当用户更新帖子时,我想清除Likes子集合(在我的应用程序中,用户只是更新帖子,而不是创建新帖子) 我已经读到,删除子集合中的每个文档都是不可取的,所以我想知道如何才能做到这一点。一个受欢迎的用户可能有成千上万的喜好,因此删除它们可能会花费高昂的成本 我的理解是,我可以使用云函数以某种方式实现这一点

在我的云Firestore设置(iOS/Swift应用程序)中,我有一个
Post
集合和一个
Likes
子集合。
Likes
子集合有一个文档,其中包含喜欢该帖子的用户的信息,文档ID是喜欢该帖子的用户ID

当用户更新帖子时,我想清除
Likes
子集合(在我的应用程序中,用户只是更新帖子,而不是创建新帖子)

我已经读到,删除子集合中的每个文档都是不可取的,所以我想知道如何才能做到这一点。一个受欢迎的用户可能有成千上万的喜好,因此删除它们可能会花费高昂的成本


我的理解是,我可以使用云函数以某种方式实现这一点?我试着阅读云函数,但我已经迷路了。是否有一种方法可以触发云函数,在更新其帖子时删除该用户的
Likes
子集合中的所有文档?

从云函数中,您只需使用Firebase Admin SDK访问Firestore。在云函数中运行SDK并没有神奇的额外API

无论是在客户端SDK中还是在管理SDK中,都无法一次性删除集合中的所有文档。有关详细信息,请参阅:

  • (这也解释了原因)
  • (指向将云函数用作自定义API端点)

我知道Admin SDK中没有删除集合的功能,但出于性能原因,从云函数中删除集合是否更好?我只是想弄清楚如何以最好的方式清除我喜欢的子集合。或者这是我应该在我的数据库中做得更好的事情吗?没有比这更好的了。请参阅第三个链接,了解在云函数中执行此操作的原因。