私はカレンダーアプリを作っています。選択した日付の配列が1つあります。ユーザーがこれを以前に選択し、そこに保存されます。[NSDate]とFirebaseの対処方法
var selectedDays = [NSDate]()
アプリの負荷が、私はこれらの日付を表示する必要がありますが、Firebaseは私が唯一の日付が変換され、上記と同じ配列である別の配列var selectedDaysForFirebase = [String]()
を持ってNSDate
を受け入れていないので、すべてがovercomplicatedですFirebaseに対応する文字列に変換します。
// 1. Append converted date into selectedDaysForFirebase array
let day = dateFormatter.stringFromDate(date)
selectedDaysForFirebase.append(day)
// 2. Push data to Firebase
ref.childByAppendingPath("dates").setValue(selectedDaysForFirebase)
マイFirebase持つユーザー認証:
は、これは私が選択された日付を保存する方法です。だから、すべてのユーザーには、日付付きの小さなデータベースがあります。
Firebaseから配列を遡り、NSDate
ref.childByAppendingPath("dates").observeEventType(.Value, withBlock: { snapshot in
if let dates = snapshot.value as? NSArray {
print(dates)
// convert firebase array of dates with array of dates that only accepts NSDate
}
}, withCancelBlock: { error in
print(error.description)
})
この出力を受け入れ、私のselectedDates
配列に格納し、グラブに私が持っている私のviewDidLoad
で
:私はより良い方法があると思い
(
"2016-04-10",
"2016-04-11",
"2016-04-12"
)
日付を保存してからそれを検索して、誰かが私にこれを手伝ってくれることを願っています。
なぜタイムスタンプを使用しないのですか? – Larme
ああ、私はあまりにもこれがどのように動作するのか分かりません。 NSDateを出力する選択された日付からスタンプを作成するにはどうすればよいですか? – Kira
'NSDate'とNSTimeInterval(' double')(そしてその逆)を変換するために 'dateWithTimeIntervalSince1970:'と 'timeIntervalSinceReferenceDate'を使うことができ、FireBaseにdouble値を格納するだけです。 – Larme