• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - Firebase 加入多个节点对象

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:51:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在尝试在 Firebase 中构造我的数据然后检索它时遇到问题,以满足此用例:

我有“用户”和“组”

{
Users:
    LpWgezRkC6EWS0sjXEWxhFl2: {
        userName: 'John Doe'
        etc...
    }
},
Groups: 
     12345: {
          PropertiesID: 78765,                     
          GroupName: 'MyPool',
          GroupOwner: 'LpWgezRkC6EWS0sjXEWxhFl2' 
          GroupPassword: 'jkhdfjkhfdkjhdfkjhfsae4euhh4FDDC'
          etc...
     }
}

任何用户都可以加入任何组。

我将这种用户配对(关系)存储在“UserInGroups”节点中的组中。

{
    UsersInGroups: {
        DUmwewIfzAbfWZN4NjS8mhX82: {  <- UserId
           12345: true                <- GroupId
        },
        LpWgezRkC6EWS0sjXEWxhFl2: {    
           12345: true                
        }
    }
}

最后,每个组都有一个“属性”节点,用于控制组的细节/行为。

{
  Properties:
     78765: {
          PropertyName: 'Custom',
          dateCreated:  '20170601',
          etc...
     },
     76421: {
          PropertyName: 'Admin',
          dateCreated:  '20170602',
          etc...
     }
}

话虽如此,我的应用程序有一个仪表板 View ,它在 UICollectionView 中显示所有组/属性信息。它应该显示如下信息:

  • 组名
  • GroupOwner
  • 基于“组”节点中的 PropertiesID

    • 属性名称

    • 属性创建日期

我将如何“加入节点”以便能够检索组信息以及属性信息;

基于登录到应用程序的用户是否属于组(因此在 UsersInGroups 节点中有一个条目)?!

UPDATE

关于数据结构的后续问题...

是否可以进行三 (3) 次连接以获取我希望在 UIColloection View 中显示的所有信息。

类似这样的:

let ref = firebase.database().ref("UsersInGroups")
ref.child((Auth.auth().currentUser?.uid)!).queryEqual(toValue: true).observe(.value, with: { snapshot in

    let groupsRef = firebase.database().ref("Groups")
    groupsRef.child(snapshot.key).observe(.value, with: { snap in

        let propertiesRef = firebase.database().ref("roperties")
        ref.child(snap.key).queryEqual(toValue: true).observe(.value, with: { gamesnapshot in

              //Get all the info from firebase

        })
    })
 })



Best Answer-推荐答案


在您下载“群组”节点的所有地方,您是否需要特定群组的属性?如果这样做,您可以在“组”中创建一个新节点,将其命名为属性,并在其中列出所有属性。

关于ios - Firebase 加入多个节点对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44533078/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap