Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法在firebase数据库中插入数据_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 无法在firebase数据库中插入数据

Android 无法在firebase数据库中插入数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我是android开发新手,我可以从firebase DB读取数据,但不能将新数据插入firebase DB。我还检查了firebase规则。我正确地添加了依赖项。这是实现'com.google.firebase:firebase数据库:19.1.0',请让我知道我错在哪里,我检查了许多示例,但不知道为什么我的代码不起作用 import androidx.appcompat.app.AppCompatActivity; import com.google.firebase.database.F

我是android开发新手,我可以从firebase DB读取数据,但不能将新数据插入firebase DB。我还检查了firebase规则。我正确地添加了依赖项。这是实现'com.google.firebase:firebase数据库: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);
 }

实际上,您的firebase DB可能是用户类的预期和对象,具有emailId、password、confirmPassword等属性。但您试图做的只是将每个字符串作为用户对象插入,这是行不通的。你应该试着做:

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方法中传递路径参数?

使用此代码时会发生什么?请输入日志。@farhanahmed也可以查看一下
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);