仅在Firebase中没有出现的对象中删除该对象

时间:2019-01-27 15:55:41

标签: ios swift firebase

这是我的Firebase数据结构:

item:
    itemUID:
        Title: ""
        createdBy: userUID

media:
    mediaUID:
        Title: ""
        createdBy: userUID
        items:
            itemUID: true
            itemUID: true

user:
    userUID:
        firstname: ""
        lastname: ""

我希望当前用户编辑他们的媒体列表之一。媒体基本上是一堆项目和标题,以及媒体的创建者(当前用户)。其他用户可以将当前用户的项目添加到他们的媒体中,并且对该项目的引用会出现在媒体的“项目”中。当前用户编辑其媒体并希望从媒体中删除项目时,我只想在

时删除该项目
  1. 它是由当前用户创建的
  2. 它不在任何人的媒体中

我将如何迅速做到这一点? 谢谢

1 个答案:

答案 0 :(得分:0)

在当前数据结构中,非常容易找到特定用户的媒体列表。但是,很难找到特定媒体项目的用户列表。对于您的用例类型,通常需要在两个方向上存储信息:每个用户的项目和每个项目的用户。

所以我要再添加两个顶级列表:

users_media
  $uid
    $mediaid1: true
    $mediaid2: true
media_users
  $mediaid
    $uid1: true
    $uid2: true

有了这些额外的结构,您的用例将变成一堆列表读取和相应的多位置更新。

另请参阅: