Я новичок в базе данных FireBase.Я написал этот код для получения пользовательских данных после аутентификации.Часть аутентификации работает хорошо, но часть получения данных приводит к сбою моего приложения с этой ошибкой.
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.kcw.firebasebasics.UserInterface$1.onDataChange(UserInterface.java:58)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@17.0.0:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@17.0.0:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@17.0.0:55)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
Вот код, который я написал, и я написал комментарий к строке 58 (строка, вызывающая ошибку), чтобыидентифицируйте его.
FirebaseUser firebaseUser;
DatabaseReference reference;
TextView greeting;
String name,text;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_interface);
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
reference =FirebaseDatabase.getInstance().getReference()
.child(firebaseUser.getUid());
greeting = findViewById(R.id.greet_msg);
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String text = dataSnapshot.getValue().toString();//line 58
try {
JSONObject object = new JSONObject(text);
name = object.getString("username");
} catch (JSONException e) {
e.printStackTrace();
}
String message = "WELCOME ";
message = message + name.toUpperCase();
greeting.setText(message);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Помогите мне решить эту проблему.
Я проверил, есть ли в моей базе данных нулевой объект, и я не нашел ни одного.
Я такжепопытался сделать все мои строковые переменные глобальными, но это тоже не сработало
И, наконец, изображение моей базы данных после регистрации пользователей.
ссылка на скриншот базы данных