値:子を検索すると、私のデータベースは次のようにソートされた値がありFirebase /スウィフト
Users
UID
Username
Email
を、私はあなたがユーザ名または電子メールのいずれかの検索システムを追加する友人を実装したいことだし、それはあなたが追加することができます人。
は、私は、ユーザーの全体の辞書を取得することで
REF_USERS.queryOrdered(byChild: "displayname").queryEqual(toValue: input).observeSingleEvent(of: .value) { (snapshot: FIRDataSnapshot) in {
print(snapshot.value)
}
を使用してユーザーを見つけることができるんだけど、私はUIDをつかんで問題を抱えています。
snapshot.keyは私に「ユーザー」を与えます。
ユーザー名/電子メールでユーザーの辞書を見つけたら、辞書からUID値を取得するにはどうすればよいですか?
これは動作しません。あなたが単一のレコードを持っていればそれはいいです。あなたがuid_0とuid_1を持っていて、あなたが探している電子メールがuid_1にあるなら、あなたはそれをどのように見つけますか?uidは自動的に生成されるので、あなたはそれらを知らないのですが、電子メールを見つけてレコードを返すために子供を検索する必要があります – justdan0227
@ justdan0227うまくいきます!コードがテストされます。しかし、ユースケース*は、質問にあったものとは異なります。 OPは、ノードが見つかるとUIDを取得する方法を尋ねています。私のコードでは、各ノードに慎重なuserNameと電子メールがあると仮定して、そのUID(スナップショット?.key)を取得する方法について説明します。私のコードはそれを行います。ただし、複数の結果が可能な場合、クエリは一致するすべてのノードを含むスナップショットを返します。次に、スナップショットを繰り返して問題のuidを取得します。その例のFrankの答えを参照してください。 – Jay
申し訳ありません@Jay、元の質問は「ユーザー名/電子メールでユーザー辞書を検索した後、辞書からUID値を取得するにはどうすればよいですか?あなたが最初にユーザー名/電子メールに基づいて "レコード"を見つけてからUIDを返さなければならないということです。 – justdan0227