Swift 我想按日期在firebase中保存数据,这意味着用户保存的所有数据都是在该日期保存的

Swift 我想按日期在firebase中保存数据,这意味着用户保存的所有数据都是在该日期保存的,swift,xcode,firebase,firebase-realtime-database,Swift,Xcode,Firebase,Firebase Realtime Database,我试图在firebase中保存数据,但我希望按日期保存,以便按日期获取数据 func saveData(){ ref = Database.database().reference() let userid = Auth.auth().currentUser?.uid let timestamp = NSDate().timeIntervalSince1970 self.date = timestamp let fuelDetails:[String:A

我试图在firebase中保存数据,但我希望按日期保存,以便按日期获取数据

func saveData(){
    ref = Database.database().reference()
    let userid = Auth.auth().currentUser?.uid
    let timestamp = NSDate().timeIntervalSince1970
    self.date = timestamp

    let fuelDetails:[String:Any] = ["tank_for_refueling" : self.tankForRefuelingTextField.text ?? "",
                                    "fuel_quantity_refueled" : self.fuelQuantityRefueledTextField.text ?? "",
                                    "tank_after_refueling" : self.tankAfterRefuelingTextField.text ?? "",
                                    "date": self.date ?? 0]
    ref.child(Constants.NODE_MAINTENANCE).child("date").child(userid!).child(Constants.NODE_FUEL).childByAutoId().setValue(fuelDetails){(error,databaseRef) in
        if let error = error{
            print(error.localizedDescription)
        }

    }
}

您可以使用以下内容:

    func saveData(){
        // ... other code
        let getDate = Date()
        let formatter = DateFormatter()
        formatter.dateFormat = "dd-MM-yyyy"
        self.date = formatter.string(from: getDate)

        let fuelDetails:[String:Any] = ["tank_for_refueling" : self.tankForRefuelingTextField.text ?? "",
                                        "fuel_quantity_refueled" : self.fuelQuantityRefueledTextField.text ?? "",
                                        "tank_after_refueling" : self.tankAfterRefuelingTextField.text ?? "",
                                        "date": self.date ?? 0]
        ref.child(Constants.NODE_MAINTENANCE).child("\(self.date)").child(userid!).child(Constants.NODE_FUEL).childByAutoId().setValue(fuelDetails){(error,databaseRef) in
            if let error = error{
                print(error.localizedDescription)
            }

        }
    }
编辑
如果Firestore试图解析子项,则更新了从点到破折号的语法。self.date=formatter.string(from:getDate)此行出现一个错误,称为(无法将“string”类型的值分配给“Double?”类型。由于未捕获的异常“InvalidPathValidation”,原因:”(子项:)必须是非空字符串且不包含“.”#“$”[”或“]”我的错,这是Swift 3语法。你可以得到最新的信息使用日期在感谢它会帮助我很多