希望将数组作为具有整数作为键名的对象列表提交给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的新手,需要一些指导。
答案 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()
})