android - उपयोगकर्ताओं को फायरबेस में कैसे सहेजा जाए और इसे एंड्रॉइड स्टूडियो में वास्तविक समय में पुनर्प्राप्त किया जाए




firebase firebase-realtime-database (2)

मैं एक ऐप बना रहा हूं जिसमें बटन क्लिक पर अंक बढ़ते हैं और उन बिंदुओं को फायरबेस पर सहेजा जाना चाहिए। मैं उन डेटा को फायरबेस में सहेजने में कामयाब रहा। लेकिन जब मैं अपने ऐप को नष्ट कर देता हूं और इसे फिर से खोलता हूं तो पॉइंट वैल्यू वही दिखती है लेकिन बटन क्लिक करने के बाद। यह फिर से 0 से शुरू होता है।

उदाहरण के लिए: हर बार बटन पर क्लिक करने पर अंक 10 अंकों तक बढ़ जाता है। अब जब मैं ऐप को पूरी तरह से नष्ट कर देता हूं और इसे फिर से खोलता हूं, तो पॉइंट वैल्यू समान दिखाई देती है, लेकिन जब बटन पर क्लिक किया जाता है तो यह प्रारंभिक स्थिति से शुरू होता है।

यहाँ मेरा कोड है

    int amount = 0;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

button_claim.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            amount = amount + 100;


            textView_points.setText(String.valueOf(amount));
            databaseReference.setValue(textView_points.getText().toString());

        }
    });


}


@Override
    protected void onStart() {
    super.onStart();
    if (mAuth.getCurrentUser() == null) {
        finish();
        Intent main = new Intent(this,MainActivity.class);
        main.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(main);
    }

    databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            textView_points.setText(dataSnapshot.getValue(String.class));
            databaseReference.setValue(textView_points.getText().toString());
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

            Toast.makeText(Main2Activity.this,"error",Toast.LENGTH_LONG).show();
        }
    });



    }

एप्लिकेशन को नष्ट करने से पहले कृपया छवि देखें, एप्लिकेशन को नष्ट करने और डेटाबेस पर अपलोड करने से पहले बटन क्लिक पर बढ़ते बिंदु कृपया छवि 1 देखें

फिर से खोला गया ऐप (बंद होने के बाद) यह वही अपडेटेड पॉइंट दिखा रहा है कृपया इमेज 2 देखें

अब जब मैं दावा करता हूं कि यह 100 पर वापस आता है तो कृपया छवि संख्या 3 देखें

कृपया इस समस्या पर मेरी मदद करें, और मैं एक नौसिखिया हूँ धन्यवाद


आपको पहले पिछले स्कोर का मान प्राप्त करना होगा और फिर इसे वर्तमान स्कोर के साथ जोड़ना होगा और फिर फायरबेस डेटाबेस में अंतिम मान को अपडेट करना होगा।

question_score.child("score").addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            String previousScore = dataSnapshot.getValue(String.class);
                            if (previousScore!=null){
                                int finalScore = Integer.parseInt(previousScore) + current_score;
                                question_score.child("score").setValue(String.valueOf(finalScore));
                            }
                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {

                        }
                    });

मुझे लगता है कि पिछला स्कोर आपके लिए एक स्ट्रिंग है कोड @DHANANJAY KUMAR और स्ट्रिंग्स को जोड़ा नहीं जा सकता है और यह भी कि String.class का अर्थ क्या है। मुझे लगता है कि यह बनाया जा सकता है

int previousScore = dataSnapshot.getValue(Integer.class);

अगर हम संपादित कर सकते हैं

String.class

सेवा मेरे

Integer.class

या

int.class

कृपया स्पष्ट करें





firebase-realtime-database