0
xcodeのFirebaseデータベースで選択を行い、結果を表に表示しようとしていますが、結果は非常に奇妙です。それは同じエントリ上でforループを実行するようなものです。おそらくテーブルのせいかもしれない。 特定の選択のFirebaseデータベースクエリ
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ItemCell", for: indexPath)
let groceryItem = items[indexPath.row]
// Below is code to query users in Firebase to check if it is the current user.
let selection = ref.queryOrdered(byChild: "addedByUser").queryEqual(toValue : user.email)
selection.observeSingleEvent(of: .value, with:{ (snapshot: FIRDataSnapshot) in
if let value = snapshot.value as? [String: Any] {
print(value)
}
})
//End of code
//if user.email == groceryItem.addedByUser {
cell.textLabel?.text = groceryItem.name
cell.detailTextLabel?.text = groceryItem.addedByUser
// }
toggleCellCheckbox(cell, isCompleted: groceryItem.completed)
return cell
}
とFirebaseは次のとおりです。
{
"expense-items" : {
"20170509" : {
"addedByUser" : "[email protected]",
"amount" : 37,
"categoryType" : "Shopping",
"completed" : false,
"name" : "Dijon",
"paymentType" : "Cash"
},
"zambon" : {
"addedByUser" : "[email protected]",
"amount" : 13,
"categoryType" : "Shopping",
"completed" : false,
"name" : "zambon",
"paymentType" : "CreditCard"
},
"zouzouni" : {
"addedByUser" : "[email protected]",
"amount" : 24,
"categoryType" : "Kids",
"completed" : false,
"name" : "zouzouni",
"paymentType" : "Cash"
}
}
}
のみ20170509がログインしているユーザからのものであり、私は3回20170509のエントリを取得します。 正しい結果をテーブルに取り込むために、選択結果をどのように数えることができますか?
これをチェックアウトしましたか? https://stackoverflow.com/questions/40316200/firebase-queryequaltovalue-get-key-in-swift-2-3 – arvidurs
こちらも最後に追加してください: .queryLimited(toFirst:1) – arvidurs
あなたの質問にJSONツリーの写真が含まれていました。実際のJSONをテキストとして置き換えてください。このテキストは[Firebaseデータベースコンソール](https://console.firebase.google.com/project/_/database/data/)の[Export JSON]リンクをクリックすることで簡単に取得できます。 。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –