Невозможно вставить данные в базу данных Firebase - PullRequest
0 голосов
/ 22 сентября 2019

Я новичок в разработке для Android, я могу читать данные из базы данных Firebase, но не могу вставить новые данные в мою базу данных Firebase.Я также проверил правила пожарной базы.Я добавил зависимости правильно.implementation 'com.google.firebase:firebase-database:19.1.0', пожалуйста, дайте мне знать, где я не прав, я проверил много примеров, но не знаю, почему мой код не работает

import androidx.appcompat.app.AppCompatActivity;

import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.DatabaseReference;

public class Register extends AppCompatActivity {

        private FirebaseDatabase fbase;
        private DatabaseReference mref;
        private Button registerbtn;
        private EditText emailtext;
        private EditText password;
        private EditText cpassword;

    @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        getSupportActionBar().setTitle("Sign Up");
        fbase = FirebaseDatabase.getInstance();
         mref = fbase.getReference(path: "users");

            emailtext =  findViewById(R.id.email);
            password  =  findViewById(R.id.password);
            cpassword =    findViewById(R.id.cpassword);
            registerbtn = findViewById(R.id.button);
            registerbtn.setOnClickListener(new View.OnClickListener() {
             @Override
                public void onClick(View v) {
                RegisterUser();
          }
          });



    }

    private void RegisterUser()
     {

    String emailid = emailtext.getText().toString();
        String Password = password.getText().toString();
        String CPass    = cpassword.getText().toString();
        String Keys =  mref.push().getKey();

        mref.child(Keys).child("emailid").setValue(emailid);
        mref.child(Keys).child("password").setValue(Password);
 }

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

На самом деле ваша база данных firebase может быть ожидаемой и объект класса User, имеющий свойства (emailId, пароль, verifyPassword).Но то, что вы пытаетесь сделать, это просто вставить каждую строку как объект User, что не будет работать.Вы должны попробовать выполнить:

String tableName = "whatever table name you are using"; //probably users
User user = new User();
user.setEmail(emailid);
user.setPassword(Password);
user.setConfirmPassword(CPass);
mref.child(tableName).child(Keys).setValue(user);

И почему вы передаете параметр пути в метод getReference ()?

0 голосов
/ 22 сентября 2019
I have tried this but result is same 

  public class users {
  private String nKeys, nemail, npass;

  users(){}
  users (String key , String email, String pass){

  this.nKeys = key;
  this.nemail = email;
  this.npass = pass;

 }

  public String getId() { return nKeys;}
  public String getEmail() { return nemail;}
  public String getpass() { return npass;}
  }

    ///////////

  fbase = FirebaseDatabase.getInstance();   
  mref = fbase.getReference();

  String tablename= "users";

  String emailid = emailtext.getText().toString();
  String Password = password.getText().toString();
  String CPass    = cpassword.getText().toString();
  String Keys =  mref.push().getKey();
  users user1 = new users(Keys , emailid, Password );

  mref.child(tablename).child(Keys).setValue(user1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...