2016-10-08 3 views
0

私のiosプロジェクトにfirebaseデータベースを使用しています。firebaseに子を追加して作成した一意のキーを取得する方法は?

childByAutoIdを使用していくつかのフィールドを追加しました。

[[[_ref child:@"Users"] childByAutoId] setValue:@{@"data": @"my new json data string By aqeel", @"email": @"[email protected]"}]; 

何らかの理由で、特定の子供をデータベースから検索する必要があります(電子メールIDなど)。電子メールIDが存在する場合、その子の固有の鍵を取得したいと考えています。

私はここにキーで、私は、「ユーザー」を取得した値で、私はUsersフィールド内のすべてのエントリを取得し、この

[[[[_ref child:@"Users"] queryOrderedByChild: @"email" ] queryEqualToValue:@"[email protected]" ] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) { 
    NSLog(@"%@ Key %@ Value", snapshot.key,snapshot.value); 
}]; 

をしています。しかし、私は子供のための鍵を取得したい[email protected]

誰かにサンプルコードを提供できますか?

答えて

1

Firebaseデータベースに対してクエリを実行すると、結果が複数存在する可能性があります。したがって、スナップショットにはそれらの結果のリストが含まれています。結果が1つだけの場合でも、スナップショットには1つの結果のリストが含まれます。

これは、あなたがloop over the snapshot.childrenになることを意味します。

またあなたは、単一の.ChildAddedイベントを監視し、そのように子供を得ることができます。

[[[[_ref child:@"Users"] 
    queryOrderedByChild: @"email" ] 
    queryEqualToValue:@"[email protected]" ] 
    observeSingleEventOfType:FIRDataEventTypeChildAdded withBlock:^(FIRDataSnapshot *snapshot) { 
     NSLog(@"%@ Key %@ Value", snapshot.key,snapshot.value); 
}]; 
+0

はどうもありがとうございました。それは私が必要とするものを正確に行います。 –

関連する問題