この質問は、Join different nodes to observe them at once with firebaseの後に続きます。非常によく似ているとお詫びしますが、私はプロジェクトでそれを解決するのに苦労しています。Swiftを使用してFirebaseを使用して2つの結合ノードを正しく観察する方法
私はいくつかの食材や財産を取得IngredientDataを持っている:
{
"IngredientData": {
"-KkY92MUZNHXxg4ivGY7": {
"name": "Onions"
},
"-KkY90e7dAgefc8zH3_F": {
"name": "Peas"
},
"-KkY9-HWJANdfhmD-SJ-": {
"name": "Mushrooms"
},
"-KkbWdomTYdpgEDLjC9w": {
"name": "Eggs"
},
"-KkbXOECSCBNAcVaO9rp": {
"name": "Rice"
}
}
}
私はその後、RecipeDataを持って成分あるレシピと内部が含まれています。
{
"RecipeData": {
"-KlApwz5Y-TK_9z1sV1i": {
"recipeName": "Fried Rice",
"ingredients": {
"-KkbWdomTYdpgEDLjC9w": true,
"-KkbXOECSCBNAcVaO9rp": true,
"-KkY90e7dAgefc8zH3_F": true
}
}
}
}
私は今、私は名前財産を得ることができるので、レシピ内の成分の詳細を取得しようとしています。
ここfunc fetchRecipeIngredients() {
let databaseRef = FIRDatabase.database().reference().child("RecipeData/recipe/-KlApwz5Y-TK_9z1sV1i/ingredients")
databaseRef.observeSingleEvent(of: FIRDataEventType.value, with: { snapshot in
for ingredients in snapshot.children {
print(snapshot)
}
})
}
は私Recipe
クラスである:私はレシピの材料内部の繰り返し処理機能を持っている時に、まず
:
class Recipe { var name: String! var key: String init(from snapshot: FIRDataSnapshot) { let snapshotValue = snapshot.value as! [String: Any] self.name = snapshotValue["recipeName"] as! String self.key = snapshot.key } }
を私は2つの主な問題点を持っています特定のレシピを反復する方法や、達成したいことが必要かどうかはわかりません。今のところ、内部でiterateできるようにrecipeIDをハードコードしています。ここに行く事前にこの
fetchRecipeIngredients()
感謝:)
この回答をいただきありがとうございます。特定のレシピを特定することに関してただ1つの質問。現時点では、レシピの_ingredients_の詳細を取得するために、そのレシピの_ID_を「recipieToLoadRef」にハードコードする必要がありました。しかし、ユーザーがレシピを追加するためのfavouriteListを作成したいとしましょう。レシピを指定してtableViewのように表示する方法を教えてください。私はこれと同じアプローチを試みました。この質問が無関係なら、心配しないでください。もう一度ありがとう:) – Chace
@Chace Glad it helped!私はあなたのフォローアップの質問に対処するためのいくつかの追加情報で答えを更新しました。 – Jay
この回答に感謝します。私はこれを試みましたが、私はレシピをユーザーのお気に入りの中にプリントアウトすることができます。しかし、そこから、各レシピ名をノードから直接読み込み(/ recipe_1/name)、tableView_のデータソースとして使用できる配列を取り込むことができる部分は、どこにいるのですか:/ – Chace