Я пытаюсь проверить пользователя с помощью Firebase Phone Authentication, и, когда пользователь успешно подтвержден, я хочу добавить пользователя в базу данных Firebase Realtime. Итак, после успешной проверки OTP я получаю фатальное исключение при добавлении пользователя в базу данных.
Код для добавления пользователя в базу данных -
private void addPhoneNoToDataBase(final String phoneNo) {
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
Query checkUser = rootReference.child("users").orderByChild("phone").equalTo(phoneNo);
checkUser.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(!dataSnapshot.exists())
{
rootnode = FirebaseDatabase.getInstance();
reference = rootnode.getReference("users");
UserHelperClass user = new UserHelperClass(phoneNo);
reference.child("+91"+phoneNo).setValue(user);
Toast.makeText(VerifyPhone.this, "Registeration successful", Toast.LENGTH_SHORT).show();
callProfileActivity();
}
else{
callProfileActivity();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Я получаю ошибку при этом в приведенном выше методе - reference.child("+91"+phoneNo).setValue(user);
Исключение, которое я получаю -
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.resumeguide, PID: 15567
com.google.firebase.database.DatabaseException: No properties to serialize found on class com.example.resumeguide.UserHelperClass
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.<init>(com.google.firebase:firebase-database@@16.0.4:535)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.loadOrCreateBeanMapperForClass(com.google.firebase:firebase-database@@16.0.4:317)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.serialize(com.google.firebase:firebase-database@@16.0.4:166)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToPlainJavaTypes(com.google.firebase:firebase-database@@16.0.4:60)
at com.google.firebase.database.DatabaseReference.setValueInternal(com.google.firebase:firebase-database@@16.0.4:292)
at com.google.firebase.database.DatabaseReference.setValue(com.google.firebase:firebase-database@@16.0.4:166)
at com.example.resumeguide.VerifyPhone$4.onDataChange(VerifyPhone.java:183)
at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@16.0.4:183)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@16.0.4:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@16.0.4:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@16.0.4:55)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:228)
at android.app.ActivityThread.main(ActivityThread.java:7782)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)
Я попытался сделать переменную phoneNo
как publi c, но она не сработала. Я застрял здесь, любая помощь будет оценена.