如何在 Firebase 中推送多种类型的数据?

How to push data with multiple types in Firebase?

我想推送一个包含字符串、数字和日期的数组。我必须单独更新还是有其他方法可以完成此操作?

示例:

var categories : [String] = self.parseCategories()

var standbyDataStrings = [
    "firstName":firstName,
    "lastName":lastName,
    "categories": categories,
    "time_stamp":self.date.timeIntervalSince1970
]
var standbyDataNums = [
    "radius":nf.numberFromString(self.helpRadiusLabel.text!),
    "duration":nf.numberFromString(self.helpDurationLabel.text!)        
]
standbyUserRef.updateChildValues(standbyDataStrings)
standbyUserRef.updateChildValues(standbyDataNums)  // this gives me a error "string is not identical to NSObject"

组合 standByDataStrings 和 standbyDataNums 给我一个错误。

或者有没有办法从 Firebase 检索字符串并将其用作 int。它被存储为带有引号的字符串。

Firebase API 需要 NSDictionary updateChildValuesNSDictionary 不能包含 nil 值。另一方面,普通的 Swift 字典可以包含 nil 个值。

numberFromString的return类型是NSNumber?,所以Swift推断字典可能包含nil所以不能通过至 updateChildValues。通过使用 ! 显式强制非 nil 值,您可以编译此代码:

var standbyDataNums = [ 
    "radius":nf.numberFromString(self.helpRadiusLabel.text!)!,
    "duration":nf.numberFromString(self.helpDurationLabel.text!)!        
]
standbyUserRef.updateChildValues(standbyDataNums) // now type checks