タイトルが間違っているように見えるかもしれませんが、これをどうやって行うのかを理解しようとしています。私のデータ構造は次のようになります。私は、すべてのチャネルで提供ユーザーがいる場合を見てみたいFirebaseの子供の子供のデータをチェックする方法
。
channelRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in
for channelSnap in snapshot.children {
let channelData = (channelSnap as! FIRDataSnapshot).value as! Dictionary<String, AnyObject>
if let name = channelData["name"] as! String!, name.characters.count > 0 {
}
})
コースチェックのこの意志が名前というプロパティを持つ子供があり、もしそうなら、ものを行う場合:これは、チャネルが存在するかどうかをチェックしていきます。私がやりたいことは、すべてのチャンネルの子どもたち(チャンネルのユーザー)を通るループ(チャンネル)です。私は、チャネルに子供がいるかどうかをチェックし、そうでなければそのチャンネルを削除したい。どのようにチャンネルの子供たちの子供たちをループするか?
これは、チャネル内のユーザーませ出力しません:
channelRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in
for channelSnap in snapshot.children {
for child in (channelSnap as AnyObject).children {
let usersData = (child as! FIRDataSnapshot).value as? Dictionary<String, AnyObject>
if let randomUser = usersData?["userID"] as! String!{
print("user in the channel")
}
else
{
print("no user in channel")
}
}
を
編集.KEY
のlet ID =(FIRDataSnapshotなどchannelSnap!):私は、この関数を呼び出すことによって、すべてのチャンネルのIDへのアクセス権を持っています
編集2:
これはスナップショットの印刷であり、channelSnapの印刷にはがあり、その中にユーザーがいる:
SNAPSHOT: Snap (channels) {
"-KePh6YFmQqQ6ZhEfTHn" = {
"-KePh6YHPLSAIEARfj-i" = {
PictureVersion = 2;
readyToGo = 0;
userID = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
username = pietje;
};
creator = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
currentPlayers = 1;
entryFee = 100;
gameType = normal;
maximumPlayers = 4;
name = "random channel";
password = "";
};
}
CHANNELSNAP: Snap (-KePh6YFmQqQ6ZhEfTHn) {
"-KePh6YHPLSAIEARfj-i" = {
PictureVersion = 2;
readyToGo = 0;
userID = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
username = pietje;
};
creator = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
currentPlayers = 1;
entryFee = 100;
gameType = normal;
maximumPlayers = 4;
name = "random channel";
password = "";
}
:データをキャッチする
はこのようになります。これはうまくいくかもしれませんが、私はそれを私のやり方でしたいと思います。そのチャンネルのすべてのユーザーは1つのユーザーIDを持つことになっているので、 "userID"というキーをチャンネルで検索することは可能ですか? userIDのキーがない場合、ユーザーは存在しません。これが可能かどうか聞いてみたい! – Petravd1994
ええ..できますが、問題は 'userId'がradom idの中にあることです。だから、どこでも検索する必要があります。あなたがそのキーへの参照をどこかで持っていない限り、 –
それをしたいなら、channelSnap.childrenに別の 'for'を追加しなければなりません。 shapshow.childrenのchannelSnapの' '' { for channelSnap.childrenの子{ //ここでuserIdを探してください } } '' ' –