В настоящее время я пытаюсь добавить данные в свою базу данных и отобразить значение, однако у меня возникают проблемы при этом. это код, который я использовал до сих пор.
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: FATAL EXCEPTION: main Процесс: 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 ( ) 'на нулевую ссылку на объект