【问题标题】:Retrieving data with .Value and .ChildAdded使用 .Value 和 .ChildAdded 检索数据
【发布时间】:2016-02-10 12:43:59
【问题描述】:

我有一个要使用 Swift 从 Firebase 检索的数据列表。 我尝试使用.Value 获取数据,Firebase 返回一个字典,其中包含每个项目的 ID 以及每个 ID 的相关信息。

我调用的端点是/ideas

    let ideasRef = firebase.childByAppendingPath(IdeaStructure.PATH_IDEAS)
    ideasRef.observeEventOfType(.Value, withBlock: { snapshot in
        print(snapshot.value)
        }, withCancelBlock: { error in
            print(error.description)
    })

为了优化这个,我改成了.ChildAdded。在这种情况下,我只得到没有关联 ID 的单个项目。

是否也可以使用.ChildAdded 获取每个项目的 ID?

如果没有,如何将 Firebase 生成的 ID 保存到每个项目中?目前我正在以这种方式保存每个项目:

    let ideasRef = firebase.childByAppendingPath(IdeaStructure.PATH_IDEAS).childByAutoId()
    let idea = [
        IdeaStructure.FIELD_MESSAGE: message,
        IdeaStructure.FIELD_CREATOR_ID: userId,
        IdeaStructure.FIELD_CREATION_DATE: NSDate().formattedISO8601
    ]
    ideasRef.setValue(idea)

【问题讨论】:

    标签: ios swift firebase


    【解决方案1】:

    要获取快照的密钥,请访问其key 属性:

    let ideasRef = firebase.childByAppendingPath(IdeaStructure.PATH_IDEAS)
    ideasRef.observeEventOfType(.Value, withBlock: { snapshot in
        print(snapshot.key)
        print(snapshot.value)
    }, withCancelBlock: { error in
        print(error.description)
    })
    

    Firebase's excellent programming guide for iOS 涵盖了这个以及更多主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 2019-12-07
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      相关资源
      最近更新 更多