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

ios - FirebaseUI-iOS FUIIndexArray 用法

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

由于目前 FirebaseUI 的 FUICollectionDataSource 处理 UI 的所有更改,我使用 FUIArray 并观察数据源的更改以及手动更新我的 collectionView。然而,乍一看,我相信我应该实现 FUIIndexArray,因为它的排序行为。但是,我不确定它是两个初始化查询。

From the docs:

  • @param index A Firebase database query whose childrens' keys are all children of the data query.
  • @param data A Firebase database reference whose children will be fetched and used to populate the array's contents according to the index query.

对于数据参数,我使用的查询与 FUIArray 使用的查询相同(有效)。对于索引参数,我不确定要使用什么,所以我使用相同的查询进行测试,它似乎工作了一半。在这两个查询中,我都按优先级排序。如果我检查 FUIIndexArray 的长度,我会得到正确的计数,但是当我检查它的 .items 时,数组是空的。

FUIIndexArray 是否应该类似于 FUIArray,除了它也返回一个索引?索引查询应该是什么样的?



Best Answer-推荐答案


看起来对于 FUIIndexArray 实际应该做什么有一些混淆。 FUIIndexArray 使用索引查询的子项的键从数据查询中加载子项,这意味着每个元素的加载都是异步的,如果没有,.items 将不会返回任何内容这些加载中的一部分已经完成(尽管它可能应该在此处返回一个充满 NSNull 的数组)。

FUIIIndexArray 旨在通过查询以准确指定应加载哪些元素,从而使加载大型数据集的非常精细的部分变得更加容易。假设您的数据库如下所示:

// An index to track Ada's memberships
{
  "users": {
    "alovelace": {
      "name": "Ada Lovelace",
      // Index Ada's groups in her profile
      "groups": {
         // the value here doesn't matter, just that the key exists
         "techpioneers": true,
         "womentechmakers": true
      }
    },
    ...
  },
  "groups": {
    "techpioneers": {
      "name": "Historical Tech Pioneers",
      "members": {
        "alovelace": true,
        "ghopper": true,
        "eclarke": true
      }
    },
    ...
  }
}

如果 usersgroups 都是非常大的数据集,您将希望能够仅下载特定用户所属的组。 FUIIndexArray 正好解决了这个用例(仅此而已)。

let adasGroups = database.reference(withPath: "users/alovelace/groups")
let allGroups  = database.reference(withPath: "groups")

// array will load only alovelace's groups
let array = FUIIndexArray(index: adasGroups, data: allGroups, delegate:self)

由于每个元素都必须单独加载,FUIIndexArrayDelegate 提供了一个回调来单独处理每个加载,并且实现这个回调来正确处理成功的加载和错误可以增加你的代码库的分形复杂性。您应该尽可能避免使用 FUIIndexArray 并坚持使用更简单的 FUIArray,尤其是如果您的查询限制需求可以在没有索引的情况下满足。

关于ios - FirebaseUI-iOS FUIIndexArray 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41222937/

回复

使用道具 举报

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

本版积分规则

关注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