2017-08-07 22 views
1

私はfirebaseを初めて使用していてUnityにいくぶん新しいです(これは私の最初のスタック交換ポストです)。私はfirebaseに書き込む方法を知っていますが、データツリーから取り出す方法はわかりません。unity - firebaseデータベースからデータを取得する

私のデータが構造化されている方法は、(おおよそ)以下のとおりである。

{ 
Users:{ 
    "Email": , 
    "Password": 
    } 
} 

どのように私は自分のメールアドレスとパスワードのようなものを私のユーザーの要素にアクセスし、検索するのでしょうか?創造することで

+0

これはかなりよくそれを説明する必要があります。https://firebase.google.com/docs/database/unity/retrieve-data#retrieving_dataを。 'Leaders'をあなたのノードの名前に置き換えてください。 –

+0

こんにちはフランク。私はまだちょっと混乱しています。上記のキーの電子メールとパスワード要素を作成してアクセスするキーをどのように反復するのですか? –

答えて

0

コピー/私はこれを取得documentation pageから貼り付けを:

FirebaseDatabase.DefaultInstance 
    .GetReference("Users") 
    .ValueChanged += HandleValueChanged; 
} 

void HandleValueChanged(object sender, ValueChangedEventArgs args) { 
    if (args.DatabaseError != null) { 
    Debug.LogError(args.DatabaseError.Message); 
    return; 
    } 
    Debug.Log(arg.Snapshot.Child("Email").Value) 
} 
+0

これでデータベースを繰り返し処理してユーザーを確認できますか?私のコードに入れたら、自分のコンソールウィンドウに自分のデータベースに加えられた変更の辞書が表示されます。 –

+0

あなたはデータベースに1つのsuerを書いているだけなので、このコードはそのユーザーを表示します。ユーザーのリストを書くには、ここに示すように 'Push()'を呼び出す必要があります:https://firebase.google.com/docs/database/unity/save-data#append_to_a_list_of_data –

+0

はい私はそれを持っています。私は理解しづらいことがあります:私は複数のデータセットを持つデータベースを持っています。そのデータを繰り返し処理し、そのデータのユーザーアカウントをチェックしたいと思います。上記のコード例は、私が新しいデータを追加したときの変更を示しています。 Googleのドキュメントは、私のデータリストをどのように反復し、私が持っているものと電子メールのエントリを比較することができるかについての確かな理解を私に与えない。 –

1

私はあなた(firebaseと団結の両方に新しい)と同じ船に乗ってんだけど、以下の私の仕事のようなもの。私はあなたのシナリオにテストせずにそれを適応したので、小さなバグがあるかもしれませんが、それはあなたを始めなければなりません。たぶん経験豊富な人がそれを改善するかもしれません。私は、意図的にパスワードの適切な取り扱いに関する詳細を省いています。

//assuming 
     public class User { 


      public string email; 
      public string password; 

      public User (string email, string password) { 
       this.email = email; 
       this.password = password; 
      } 
     } 

    //inside some class 
     public void AddUser(){ 
      User user = new User("[email protected]", "password"); 
      string json = JsonUtility.ToJson(user); 
      Firebase.Database.DatabaseReference dbRef = Firebase.Database.FirebaseDatabase.DefaultInstance.RootReference 
      dbRef.Child("users").Push().SetRawJsonValueAsync(json); 
     } 

     public void GetUsers(){ 
      Firebase.Database.FirebaseDatabase dbInstance = Firebase.Database.FirebaseDatabase.DefaultInstance; 
      dbInstance.GetReference("users").GetValueAsync().ContinueWith(task => { 
        if (task.IsFaulted) { 
         // Handle the error... 
        } 
        else if (task.IsCompleted) { 
         DataSnapshot snapshot = task.Result; 
         foreach (DataSnapshot user in snapshot.Children){ 
         IDictionary dictUser = (IDictionary)user.Value; 
         Debug.Log ("" + dictUser["email"] + " - " + dictUser["password"]); 
         } 
        } 
      }); 
関連する問題