मैं वर्तमान में अपने डेटाबेस में डेटा जोड़ने और मूल्य प्रदर्शित करने का प्रयास कर रहा हूं हालांकि मुझे ऐसा करने में परेशानी हो रही है। यह वह कोड है जिसका मैंने अब तक उपयोग किया है।

package com.example.alzheimersdetector;

import com.google.firebase.database.Exclude;

import java.util.HashMap;
import java.util.Map;

public class faqinputs {
    private double questionOne;
    private double questionTwo;
    private double questionThree;
    private double questionFour;
    private double questionFive;
    private double questionSix;
    private double questionSeven;
    private double questionEight;
    private double questionNine;
    private double questionTen;




    public faqinputs(double questionOne, double questionTwo, double questionThree,
                     double questionFour, double questionFive, double questionSix, double questionSeven, double questionEight, double questionNine, double questionTen) {
    this.questionOne = questionOne;
    this.questionTwo = questionTwo;
    this.questionThree = questionThree;
    this.questionFour = questionFour;
    this.questionFive = questionFive;
    this.questionSix = questionSix;
    this.questionSeven = questionSeven;
    this.questionEight = questionEight;
    this.questionNine = questionNine;
    this.questionTen = questionTen;

}
public faqinputs() {

}



public double getQuestionOne() {return questionOne;}

public void setQuestionOne(double questionOne) {
    this.questionOne = questionOne;
}



public double getQuestionTwo() {
    return questionTwo;
}

public void setQuestionTwo(double questionTwo) {
    this.questionTwo = questionTwo;
}




public double getQuestionThree() {
    return questionThree;
}

public void setQuestionThree(double questionThree) {
    this.questionThree = questionThree;
}




public double getQuestionFour() {
    return questionFour;
}

public void setQuestionFour(double questionFour) {
    this.questionFour = questionFour;
}




public double getQuestionFive() {
    return questionFive;
}

public void setQuestionFive(double questionFive) {
    this.questionFive = questionFive;
}





public double getQuestionSix() {
    return questionSix;
}

public void setQuestionSix(double questionSix) {
    this.questionSix = questionSix;
}




public double getQuestionSeven() {
    return questionSeven;
}

public void setQuestionSeven(double questionSeven) {
    this.questionSeven = questionSeven;
}




public double getQuestionEight() {
    return questionEight;
}

public void setQuestionEight(double questionEight) {
    this.questionEight = questionEight;
}




public double getQuestionNine() {
    return questionNine;
}

public void setQuestionNine(double questionNine) {
    this.questionNine = questionNine;
}




public double getQuestionTen() {
    return questionTen;
}

public void setQuestionTen(double questionTen) {
    this.questionTen = questionTen;
}

}

डेटा सफलतापूर्वक firebase में संग्रहीत किया जा रहा है। इसे उपयोगकर्ता नोड के तहत सहेजा जा रहा है।

package com.example.alzheimersdetector;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.ValueEventListener;

import static android.os.Build.VERSION_CODES.O;

public class Results extends AppCompatActivity {
    private DatabaseReference mDatabase;
    private FirebaseAuth fAuth;
    private Button generate;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_results);
        generate = (Button)findViewById(R.id.generate);
        //Get a reference to the Firebase Database
        mDatabase = FirebaseDatabase.getInstance().getReference();
        GetUserScore();
    }

    private void GetUserScore() {
        String UserId= fAuth.getUid();
        Query totalResultQuery = mDatabase.child("FAQ").child(UserId);

        // [Start basic_query_value_listener]
        // sum of user's results

        ValueEventListener eventListener = new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                double count = 0;
                for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                    double total = dataSnapshot.child("FAQ").getValue(Double.class);
                    count = count + total;
                }
                Log.d("TAG", count  + "");
            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        };
        totalResultQuery.addListenerForSingleValueEvent(eventListener);

    }
}

तो मैं प्रश्न जोड़ने की कोशिश कर रहा हूं एक प्रश्न के लिए फिर परिणाम प्रदर्शित करें।

कोड बनाता है तो मैं एप्लिकेशन चलाता हूं और यह क्रैश हो जाता है, मुझे यह त्रुटि "रन" में मिलती है

E/AndroidRuntime: घातक अपवाद: मुख्य प्रक्रिया: com.example.alzheimersdector, PID: 28399 java.lang.RuntimeException: गतिविधि शुरू करने में असमर्थ ComponentInfo{com.example.alzheimersdector/com.example.alzheimersdetector.Results}: java.lang. NullPointerException: शून्य ऑब्जेक्ट संदर्भ पर वर्चुअल विधि 'java.lang.String com.google.firebase.auth.FirebaseAuth.getUid ()' को लागू करने का प्रयास

0
Caitlin Daly McDowell 6 अप्रैल 2020, 16:33

1 उत्तर

सबसे बढ़िया उत्तर

आपको एक NullPointerException चालू हो रहा है

String UserId= fAuth.getUid();

ऐसा इसलिए होता है क्योंकि getUid() को कॉल करने से पहले आपका कोड fAuth को इनिशियलाइज़ नहीं करता है।

इसे ठीक करने के लिए, आप शायद fAuth को onCreate में इस तरह से इनिशियलाइज़ करना चाहेंगे:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_results);
    generate = (Button)findViewById(R.id.generate);

    mDatabase = FirebaseDatabase.getInstance().getReference();
    fAuth = FirebaseAuth.getInstance(); // this line is new

    GetUserScore();
}
1
Frank van Puffelen 6 अप्रैल 2020, 18:01