Android 无法在firebase数据库中插入数据
我是android开发新手,我可以从firebase DB读取数据,但不能将新数据插入firebase DB。我还检查了firebase规则。我正确地添加了依赖项。这是实现'com.google.firebase:firebase数据库:19.1.0',请让我知道我错在哪里,我检查了许多示例,但不知道为什么我的代码不起作用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
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);