Я сохранил некоторые данные в базе данных в реальном времени под аутентифицированным ключом, используя общие настройки. Я использовал SharedPreferences
, потому что я использовал несколько страниц для получения пользовательских данных. При хранении данных он получает дополнительный узел, то есть узел «все», и я нигде не добавил этот узел в своем коде. Узел должен быть в потоке, как (1) User-> authkey-> age, а не как (2) User-> authkey-> all-> age. Из-за этого дополнительного узла я не могу получить базу данных данных. Что я должен сделать, чтобы сделать это как (1).
Ниже приведен фрагмент базы данных.
Ниже приведен мой код для сохранения данных в моей базе данных
public class LoginDetails extends AppCompatActivity {
EditText etemail_id,etpassword;
TextView tvlogin_details;
Button btregister,btback;
FirebaseAuth mAuth;
FirebaseDatabase database;
DatabaseReference reference;
Users users;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_details);
etemail_id = (EditText) findViewById(R.id.etEmailid);
etpassword = (EditText) findViewById(R.id.etPassword);
tvlogin_details = (TextView) findViewById(R.id.tvLoginDetails);
btback = (Button) findViewById(R.id.btBack);
mAuth = FirebaseAuth.getInstance();
btregister = (Button) findViewById(R.id.btRegister);
database=FirebaseDatabase.getInstance();
reference=database.getReference();
users=new Users();
btregister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String email = etemail_id.getText().toString().trim();
final String password = etpassword.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
etemail_id.setError("Provide your Email first!");
etemail_id.requestFocus();
}
else if (TextUtils.isEmpty(password)) {
etpassword.setError("Enter Password!");
etpassword.requestFocus();
}
else if (!(email.isEmpty() && password.isEmpty())) {
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(LoginDetails.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
SharedPreferences sp = getSharedPreferences("Mypref", Context.MODE_PRIVATE);
reference.child("User").child(Objects.requireNonNull(mAuth.getUid())).setValue(sp);
Toast.makeText(getApplicationContext(), "data entered", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), "database error", Toast.LENGTH_SHORT).show();
}
});
Toast.makeText(LoginDetails.this, "Successfully registered", LENGTH_LONG).show();
Intent it = new Intent(getApplicationContext(), Login.class);
startActivity(it);
}
else {
Toast.makeText(LoginDetails.this, "Registration Error", LENGTH_LONG).show();
}
}
});
}
else {
Toast.makeText(LoginDetails.this, "Error", Toast.LENGTH_SHORT).show();
}
}
});
btback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent it1 = new Intent(getApplicationContext(), Preferences.class);
startActivity(it1);
}
});
}
}
`