【问题标题】:Appending a list on Firebase Realtime Database swift在 Firebase 实时数据库 swift 上附加一个列表
【发布时间】:2017-05-06 02:46:10
【问题描述】:

我正在使用 Firebase 实时数据库来存储用户位置列表。目前,不是将项目添加到 firebase 的用户列表中,而是将其替换。如何在用户将位置添加到 tableview 时创建一个附加列表?所以我希望数据的结构是:

USER_ID 地名:地点A 位置B 位置C

这可能吗?到目前为止,这是我的代码:

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath)
    for place in storedPlaces {
        storedNames.append(place.name)
    }
    cell.textLabel?.text = storedNames[indexPath.row]

    let Pname: String = (cell.textLabel?.text!)!
    print(Pname)
     let PplaceID = "Hello"
    let post : [String: AnyObject] = ["storedName" : Pname as AnyObject, "placeID" : PplaceID as AnyObject]

    let databaseRef = FIRDatabase.database().reference()
    databaseRef.child("PlaceNames").child((user?.uid)!).setValue(post)



    return cell

【问题讨论】:

标签: ios swift firebase firebase-realtime-database append


【解决方案1】:

我认为你想要的是让 firebase 定义位置节点键:

let databaseRef = FIRDatabase.database().reference()
databaseRef.child("PlaceNames").child((user?.uid)!)
locationRef = databaseRef.childByAutoId()
locationRef.setValue(post)

这将产生一个 Firebase 结构:

PlaceName
  uid_0
    -YUisisokapoksa
       storedName: "some name"
       placeID: "some id"
    -YNisimaii990js
       storedName: "some name"
       placeID: "some id

Firebase Getting Started Guide 上有一些关于使用 childByAutoId 的信息 - 在更新或删除数据部分

【讨论】:

  • 嘿,谢谢!这不是我想要的,但是您为我指出了正确的方向,所以现在我已经解决了...我将 childByAutoId() 放在 child((user?.uid)!) 之后行,然后我得到了 PlaceNames 下的 uid,autoID 在下面,然后是各个地方。 (因此为表格视图中的每个条目创建一个新的 autoID)这正是我想要的!
  • 太棒了!听起来我发布的结构与您的描述相符!如果答案有帮助,请接受它,以便对其他人也有帮助。
猜你喜欢
  • 2019-06-20
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多