使用Arrays和Firebase

时间:2018-05-14 01:01:49

标签: swift firebase firebase-realtime-database

希望将数组作为具有整数作为键名的对象列表提交给firebase。我知道firebase不直接支持Arrays,所以想知道如何这样做。我正在创建用户添加用户购物车的项目列表。所以我正在接近它:

func addItemtoCart(item: String, completed: @escaping (_ completed: Bool) -> ()) {    Firebase_REference_Cart.child(userID).child("itemIDs").updateChildValues(["itemiD": itemID])
  completed(true)
}

我知道这不起作用,因为每次将物品添加到购物车时,它将替换“ItemId”下的项目。我希望有这样的东西

CartITems: {
  0: "945495949856956",
  1: "9459469486895695"
  2: "J888568567857685"
}

如果有人能以最具描述性的方式描述如何从A到Z这样做,那将会有很大帮助。我是firebase的新手,需要一些指导。

1 个答案:

答案 0 :(得分:0)

首先创建类似的模型:

struct Model {
var id: String
init(id: String) {
   self.id = id 
}}

然后在您的班级中创建此模型的实例:var model = Model(id: "First Id") 然后将其推送到Firebase使用:

func addInstance(model: Model) -> Completable {
    return Completable.create( subscribe: { completable in
            let reference = Database.database()
                .reference()
                .child("Models")
                .childByAutoId
            var model = model
            model.id = reference.key
            reference.setValue(model.dictionary)
            self.modelVariable.value.append(model)
            completable(.completed)
        }
        else {
            completable(.error(NSError(domain: "Sample", code: 403, userInfo: [NSLocalizedDescriptionKey: "Server Error"])))
        }
        return Disposables.create()
    })