SwiftとFirebaseを使ってチャットアプリケーションを作成する方法について、簡単に私はUdemyのコースに参加しました。Swift 3 Firebaseアップデートコードの変換 - ソート
しかし、私は1週間後にコースを修了しました。これは数ヶ月前のことです。それ以来、FirebaseとSwiftの両方のアップデートがありました。私は現在、古いコードの一部を新しいコードに変換することに苦労しています。
ここで私は、現在で苦労していたコードされています
func loadRecents() {
firebase.child("Recent").queryOrdered(byChild: "userId").queryEqual(toValue: FIRAuth.auth()!.currentUser?.uid).observe(.value) { (snapshot:FIRDataSnapshot) in
self.recents.removeAll()
if snapshot.exists() {
if let values = snapshot.value as? [String:AnyObject] {
let sorted = (values as! NSArray).sortedArray(using: [NSSortDescriptor(key: "date", ascending: false)])
for recent in sorted {
self.recents.append(recent as! NSDictionary)
self.conversationTableView.reloadData()
}
}
self.conversationTableView.reloadData()
}
self.conversationTableView.reloadData()
}
self.checkUnread()
}
だから、これは単に私が単に日を通してそれを並べ替えていますのtableView内のすべての「チャット」を表示するコード、昇順であります偽です。
私が行った変更は、古いsnapshot.value.allValues
をsnapshot.value as? [String:AnyObject]
に変換するだけです。クエリはログインしたアカウント(FIRAuth.auth().currentUser!.uid)
によってソートされます。
ただし、このコードを作成するたびにエラーが発生するため、このコードは推奨されていません。そして私はそれが以前のバージョンで働いたという事実を知っています。
これはエラーです:
Thread 1: EXC_BAD_INSTRUCTION
と(であるかもしれない)ことが必要であり、それは完全に私は、現在のコードを台無しにしていることを起これば、ここでは完全な古いコードです:
は、func loadRecents() {
firebase.child("Recent").queryOrderedByChild("userId").queryEqualToValue(FIRAuth.auth()!.currentUser!.uid).observeEventType(.Value, withBlock: {
snapshot in
self.recents.removeAll()
if snapshot.exists() {
let sorted = (snapshot.value!.allValues as NSArray).sortedArrayUsingDescriptors([NSSortDescriptor(key: "date", ascending: false)])
for recent in sorted {
self.recents.append(recent as! NSDictionary)
//add functio to have offline access as well, this will download with user recent as well so that we will not create it again
firebase.child("Recent").queryOrderedByChild("chatRoomID").queryEqualToValue(recent["chatRoomID"]).observeEventType(.Value, withBlock: {
snapshot in
})
}
}
self.tableView.reloadData()
})
self.checkUnread()
}
これを回避/修正する方法についてのアイデアはありますか?ヘルプは非常に高く評価されます。
奇妙なことに、これは問題を解決していないようです。うーん.. – askaale