私はすべての投稿を取得し、すべてをuitableviewcontrollerで表示しているコードをいくつか持っています。 firebaseからの投稿のすべてを取得しているコードは、このです:現在のユーザーからの投稿のみを表示する - firebase swift
viewDidLoad {
dbRef = FIRDatabase.database().reference().child("feed-items")
startObersvingDB()
}
func startObersvingDB() {
dbRef.observeEventType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
var newUpdates = [Sweet]()
for update in snapshot.children {
let updateObject = Sweet(snapshot: update as! FIRDataSnapshot)
newUpdates.append(updateObject)
}
self.updates = newUpdates
self.tableView.reloadData()
}) { (error: NSError) in
print(error.description)
}
}
どのように私は特定のユーザ名からアップデートを取得するためにその部分を修正することができますか? firebaseでの私の構造は次のようにされていますので、コードが実行すべきか、byUsername文字列をフェッチしている
feed-items {
unique-user-id {
post: "This is a post"
byUsername: "MyUser"
}
}
- 私はちょうどそれを行うために自分のコードを更新する方法を見つけ出すことはできません。私はあなたを収集することができるものから
スウィフト3
func startObersvingDB() {
FIRDatabase.database().reference().child("feed-items").queryOrdered(byChild: "byUsername").queryEqual(toValue: "MyUser").observe(.value, with: { (snapshot: FIRDataSnapshot) in
var newUpdates = [Sweet]()
for update in snapshot.children {
let updateObject = Sweet(snapshot: update as! FIRDataSnapshot)
newUpdates.append(updateObject)
}
self.updates = newUpdates
self.tableView.reloadData()
}) { (err) in
print(err!.localisedDescription)
}
}
スウィフト2
func startObersvingDB() {
FIRDatabase.database().reference().child("feed-items").queryOrderedbyChild("byUsername").queryEqualtoValue("MyUser").observeSingleEventOfType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
var newUpdates = [Sweet]()
for update in snapshot.children {
let updateObject = Sweet(snapshot: update as! FIRDataSnapshot)
newUpdates.append(updateObject)
}
self.updates = newUpdates
self.tableView.reloadData()
}) { (error: NSError) in
print(error.description)
}
}
私はsnapshot.childrenだけを探すので、一意のユーザーIDは「スキップ」されていますが、誰かが既に私の答えを見つけました。 –