2016-08-18 8 views
7
{ 
    "random_key 1" : { 
    "id": 0, 
    "text": "This is text" 
    }, 
    "random_key 2" : { 
    "id": 1, 
    "text": "This is text" 
    } 
} 

मैं इस तरह मेरे डेटा भंडारण कर रहा हूँ, तो और मैं नोड जहां id0 के बराबर है प्राप्त करना चाहते हैं। मैं उसे कैसे कर सकता हूँ?Firebase क्वेरी डेटा

उपर्युक्त issue का बच्चा है, जो root का बच्चा है।

+0

पर एक नज़र हो सकता है मैं अपने प्रश्न एक शब्दों में थोड़ा अलग, लेकिन मेरी पोस्ट में जवाब आपकी मदद करनी चाहिए। http://stackoverflow.com/questions/39023945/how-to-get-data-from-real-time-database-in-firebase/39024068#39024068 –

+0

यदि आपके पास पहले से मौजूद एक मौजूदा आईडी है, तो आप स्टोर क्यों नहीं करते उस आईडी के तहत डेटा? यह लुक-अप को बहुत आसान बना देगा। –

+0

@ फ्रैंकवनफफेलन मैंने आईडी के तहत सभी डेटा संग्रहीत किया है; उस आईडी पर ऑर्डरबाइल्ड क्वेरी के लिए मुझे किस मूल्य की आवश्यकता है? – Shruti

उत्तर

22

आपके मामले में आप सेटअप करना होगा इस तरह एक क्वेरी:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference(); 

    Query query = reference.child("issue").orderByChild("id").equalTo(0); 
    query.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if (dataSnapshot.exists()) { 
       // dataSnapshot is the "issue" node with all children with id 0 
       for (DataSnapshot issue : dataSnapshot.getChildren()) { 
        // do something with the individual "issues" 
       } 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
+0

क्या आप कृपया इस प्रश्न में मेरी एक ही तरह की समस्या पर मेरी मदद कर सकते हैं: - http://stackoverflow.com/q/42502024/3946958 ... और क्या आप कृपया मुझे बता सकते हैं कि आपके उत्तर में "समस्या" क्या है? ??? –

+0

यह मेरे लिए काम करता है, लेकिन क्या आप बता सकते हैं कि हम एकाधिक विकल्प के साथ डेटा कैसे फ़िल्टर कर सकते हैं ... देश, राज्य, शहर –

+0

से उपयोगकर्ता के समान, लेकिन अगर मैं ऑर्डर बाय ऑर्डर द्वारा ऑर्डर नहीं करना चाहता हूं तो क्या होगा? मैं सिर्फ आईडी से मेल खाना चाहता हूं ... परिणाम देने के लिए अतिरिक्त गणना है। – dsharew

1

@ Linxy के जवाब सही है लेकिन जब से आप डेटाबेस से मदों की एक सूची पढ़ने हो जाएगा, यह एक बच्चे को उपयोग करने के लिए बेहतर है मूल्य घटना श्रोता के बजाय घटना श्रोता।

DatabaseReference reference = FirebaseDatabase.getInstance().getReference(); 

Query query = reference.child("issue").orderByChild("id").equalTo(0); 
query.addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
     //Do something with the individual node here`enter code here` 
    } 

    @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) { 

    } 


}); 
0

इस कोड के लिए मुझे

mFirebaseDatabase.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(final DataSnapshot dataSnapshot) { 
       for (DataSnapshot data : dataSnapshot.getChildren()) { 
       //If email exists then toast shows else store the data on new key 
        if (!data.getValue(User.class).getEmail().equals(email)) { 
         mFirebaseDatabase.child(mFirebaseDatabase.push().getKey()).setValue(new User(name, email)); 
        } else { 
         Toast.makeText(ChatListActivity.this, "E-mail already exists.", Toast.LENGTH_SHORT).show(); 
        } 
       } 
      } 

      @Override 
      public void onCancelled(final DatabaseError databaseError) { 
      } 
     }); 
0

काम करता है Firebase का एक आसान से उपयोग क्रॉस प्लेटफॉर्म एकीकरण के लिए आप भी V-Play Engine for mobile apps

FirebaseDatabase { 
    id: firebaseDb 

    Component.onCompleted: { 
    //use query parameter: 
    firebaseDb.getValue("public/bigqueryobject", { 
        orderByKey: true, //order by key before limiting 
        startAt: "c",  //return only keys alphabetically after "c" 
        endAt: "m",  //return only keys alphabetically before "m" 
        limitToFirst: 5, //return only first 5 sub-keys 
    }) 
    } 
} 
संबंधित मुद्दे