2017-09-17 17 views
5

मैं एक ऐप बना रहा हूं और मैंने फायरबेस के डेटाबेस और प्रमाणीकरण सेवाओं के साथ एक समस्या में भाग लिया है।फ़ायरबेस डाटाबेस श्रोताओं को थोड़ी देर बाद फायरिंग नहीं किया गया जबकि

थोड़ी देर के बाद, जब तक मैं प्रमाणीकृत कर रहा हूँ (Firebase प्रमाणीकरण का उपयोग करके) और मेरे app का उपयोग कर, मेरे डेटाबेस ValueEventListeners, के नाम से जाना नहीं प्रतीत होती हैं, भले ही डेटाबेस में डाटा नहीं है।

मैं अपने श्रोताओं कैसे जोड़ रहा:

FirebaseDatabase 
     .getInstance() 
     .getReference() 
     .child("my_child") 
     .addValueEventListener(new ValueEventListener() 
     { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) 
      { 
       Log.d("App", "onDataChange"); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) 
      { 

      } 
     }); 

सामग्री मैं कोशिश की है:

  • एक relog पढ़ने के बाद डेटाबेस नियम (जाँच हो रही है ठीक है - लेकिन नकली भी पारित पढ़ने जबकि प्रमाणीकृत & अनधिकृत)
  • डेटाबेस रेफरेंस पर रखें सिंक (सत्य)
  • श्रोताओं को गतिविधि के ऑन-क्रेट इंस्टेंट में जोड़ना आवेदन के onCreate
  • की EAD जोड़ा जा रहा है// निकालना, डेटाबेस में डेटा को अद्यतन करने के लिए किसी सिंक

रीबूट हो रहा है किसी भी मदद को गति प्रदान करने की बहुत सराहना की जाएगी।

+0

क्या कोई त्रुटि है? –

+0

कोई लॉगक आउटपुट बिल्कुल नहीं है .. मैंने श्रोताओं में सभी संभावित लाइनों पर ब्रेकपॉइंट लगाए हैं और वे बिल्कुल फायरिंग नहीं कर रहे हैं। यह हर रीबूट होता है, जो वास्तव में वास्तव में अजीब है। – Ilan321

+0

क्या आप अपनी फायरबेस डेटाबेस संरचना – Salman500

उत्तर

3

तो, जाहिरा तौर पर मुद्दा यह है कि "टोकन सेवा" नामक एक एपीआई मेरे गूगल एपीआई डैशबोर्ड में सक्षम नहीं किया गया था।
Firebase सहायता से एक उपयोगी ईमेल के लिए धन्यवाद (! धन्यवाद लोग), मैं FirebaseDatabase.getInstance().setLogLevel(Logger.Level.DEBUG);

लो बुला और निहारना द्वारा डीबग लॉगिंग चालू कर रखी है: D/PersistentConnection: pc_0 - Error fetching token: An internal error has occurred. [ �Token Service API has not been used in project <project-id> before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/securetoken.googleapis.com/overview?project=<project-id> then retry.

तो एपीआई को सक्षम करने से, यह भी निश्चित है लगता है त्रुटि!

1

अपने बच्चे के डेटाबेस का संदर्भ बनाएं, अपनी आवश्यकता के अनुसार कस्टम चैट क्लास बनाएं (अनिवार्य रूप से आप अपने फायरबेस में क्या देखते हैं)। addChildEventListener आपको अपने my_child के साथ होने वाले सभी परिवर्तनों को अवश्य देना चाहिए। उम्मीद है कि यह आपकी मदद करता है।

mFirebaseRef = new Firebase("https://yourapp.firebaseio.com/").child("my_child"); 
 

 
/** 
 
     * Firebase - Receives message 
 
     */ 
 
     mFirebaseRef.addChildEventListener(new ChildEventListener() { 
 
      @Override 
 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
 
       if (dataSnapshot != null && dataSnapshot.getValue() != null) { 
 
        try{ 
 

 
         Chat model = dataSnapshot.getValue(Chat.class); 
 

 

 
         mChats.add(model); 
 
         mRecyclerView.scrollToPosition(mChats.size() - 1); 
 
         mAdapter.notifyItemInserted(mChats.size() - 1); 
 
        } catch (Exception ex) { 
 
         Log.e(TAG, ex.getMessage()); 
 
        } 
 
       } 
 
      } 
 

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

 
      } 
 
     });

संबंधित मुद्दे