0
Firebridgeデータベース(この例では[branch1、branch2])から、Swift言語で の枝のリストを取得しようとしています。 "branches")何も返さず、最初のprint関数も呼び出されていませんが、branch1のようなブランチの1つを観察するとうまくいきます。Firebaseのデータベース参照を参照して最上位ノードの値を取得できません
ref.child("branches").child("branch1").observe(.value, with: { snapshot in
let address = snapshot.childSnapshot(forPath: "address").value
print("\(address)")
}
、それ: は今どのように私は枝のリスト([支社、BRANCH2])
let ref = FIRDatabase.database().reference()
ref.child("branches").observe(.value, with: { snapshot in
print("+++++++++++++++++ ")
print("++++++++++++\(snapshot.hasChildren())")
for child in snapshot.children{
let branch = child as! FIRDataSnapshot
let branchName = branch.key as! String
print("\(branchName)")
}
}
{ "Users" : {
"6dICrkbVVJWzVZ00Vq4y9Fm2Qcg2" : {
"branches" : {
"branch1" : true
},
"isAdmin" : true
},
"M0C1XUyboPg5zbgQi24nh3SlJri1" : {
"branches" : {
"branch2" : true
}
} },"branches" : {
"branch1" : {
"address" : "NDG",
"campaigns" : {
"valentine's day" : true
},
"manager" : "y",
"rate" : {
"average" : 0,
"bad" : 0,
"good" : 0
},
"users" : {
"6dICrkbVVJWzVZ00Vq4y9Fm2Qcg2" : true,
"M0C1XUyboPg5zbgQi24nh3SlJri1" : {
"isAdmin" : true
}
}
},
"branch2" : {
"address" : "downtown montreal",
"manager" : "x",
"rate" : {
"average" : 0,
"bad" : 0,
"good" : 0
},
"users" : {
"M0C1XUyboPg5zbgQi24nh3SlJri1" : true,
"Z6b5WalkNWZLMVdwGPHi3vSvSRU2" : {
"isAdmin" : true
}
}
} }, "campaigns" : {
"valentine's day" : {
"branches" : {
"branch1" : true
}
} }}
と支社を取得するための作業コードであるを取得することができます正しい結果(NDG)を印刷します
セキュリティルール:
{ "rules": {
"Users":{
"$uid":{
".read":"auth.uid == $uid || root.child('Users').child(auth.uid).child('isAdmin').val()==true",
".write":"auth.uid == $uid || root.child('Users').child(auth.uid).child('isAdmin').val()==true"
}
}, "branches":{
"$branchId":{
".read" : "auth.uid == true || root.child('Users').child(auth.uid).child('isAdmin').val()==true || root.child('branches').child($branchId).child('users').child(auth.uid).exists()",
".write" : "auth.uid == true || root.child('Users').child(auth.uid).child('isAdmin').val()==true || root.child('branches').child($branchId).child('users').child(auth.uid).child('isAdmin').val()==true"
}}}}
あなたはbranch1を観察している場所で動作する質問にコードを追加できますか?また、イメージやリンクではなく、ファイアベース構造をテキストとして投稿することをお勧めします。そうすれば、それは検索可能であり、答えるときにそれを再入力する必要はありません。最も重要なことは、誰かが画像の変更をホストしている場合、それは質問を破ります。だからそれをテキストとして含めることに固執する。 – Jay
ありがとうございました@ジェイ、私はそうする – Annie
あなたはセキュリティルールの関連部分を投稿することはできますか? '/ branches'は**読み込み不可ではなく、/ branches/$ branchID'は読み込み可能ではないようです。 – vzsg