2017-01-30 7 views
-3

私はFirebaseとAndroidの初心者です。私の問題は、特定のキーを検索し、それが存在するかどうかをチェックすることです。存在する場合は、そのキーのURL値を取得してユーザーに表示します。 これはすべて、データベースに変更を加えることなく実行する必要があります。特定のキーに関するすべてのFirebaseデータベースを照会し、その子供の値を取得します。Android

どうすればよいですか?ありがとう。ここで

は私のデータベース構造です:

{ 
    "images" : { 
    "partner " : { 
     "text" : "partner", 
     "url" : "http://res.cloudinary.com/dg3jylcsw/image/upload/v1483565650/sister_x3lv6j.png" 
    }, 
    "sister" : { 
     "text " : "sister", 
     "url" : "http://res.cloudinary.com/dg3jylcsw/image/upload/v1483565650/sister_x3lv6j.png" 
    } 
    } 
} 

私のコード:

package com.example.android.testy; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

import com.firebase.client.Firebase; 
import com.firebase.client.Query; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Firebase.setAndroidContext(this); 

     Button bt = (Button)findViewById(R.id.button); 
     bt.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       EditText input = (EditText) findViewById(R.id.editText); 
       String string = input.getText().toString(); 
       Firebase rootRef = new Firebase("https://test-219f8.firebaseio.com/images"); 
       Query queryRef = rootRef.orderByKey().equalTo(String.valueOf(input)); 
      } 
     }); 

    } 


} 
+0

あなたの質問は非常に不明です。特定の場所の正確な値を検索していますか、データベース全体の一般的なテキスト検索ですか?これまでに何を試しましたか?関連するコードと画像の代わりにプレーンテキストのデータを含めてください。 –

+0

申し訳ありません私の質問を明確にするように更新します。データベースの参照後に何をすべきかわからないので、コードを添付しませんでした。 はい私はそれを見つけたときに姉妹の正確なキーを検索したいと思います。私はURLの値を取って、ユーザーにそれを表示する必要があります私は喜んで希望を –

+0

それはすべての関連するコード、サンプルデータ、 、バージョン情報など、問題を十分に理解することができます。 [How to Ask](http://stackoverflow.com/help/how-to-ask)と[mcveを作成する](http://stackoverflow.com/help/mcve)を参照してください。 – Kato

答えて

0

Mainactivity:

package com.example.android.testy; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

import com.firebase.client.ChildEventListener; 
import com.firebase.client.DataSnapshot; 
import com.firebase.client.Firebase; 
import com.firebase.client.FirebaseError; 
import com.firebase.client.Query; 
import com.firebase.client.ValueEventListener; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Firebase.setAndroidContext(this); 

     Firebase rootRef = new Firebase("https://test-219f8.firebaseio.com/images"); 
     Query queryRef = rootRef.orderByKey().equalTo("sister"); 
     queryRef.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       test data = dataSnapshot.getValue(test.class); 

       System.out.println(data.getUrl()); 
      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onCancelled(FirebaseError firebaseError) { 

      } 
     }); 

    } 


} 

テストクラスは、我々は特定のキー子供

から取り出したいものを含んでいること

テストクラス:

package com.example.android.testy; 

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 

@JsonIgnoreProperties(ignoreUnknown=true) 
public class test { 
    private String text; 
    private String url; 

    public test() { 
     // empty default constructor, necessary for Firebase to be able to deserialize blog posts 
    } 
    public String getText() { 
     return text; 
    } 

    public String getUrl() { 
     return url; 
    } 
} 
関連する問題