android - 无法在 firebase 数据库中插入数据
问题描述
我是 android 开发的新手,我可以从 firebase 数据库读取数据,但我无法将新数据插入到我的 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);
}
解决方案
实际上,您的 firebase 数据库可能期望和用户类的对象,具有属性(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() 方法中传递路径参数?
推荐阅读
- sql-server - 我遇到 IDENTITY_INSERT 设置为 OFF 或只有一个对象将保存到数据库中
- delphi - 如何更改 DBgrid 行值?
- php - php mysqli 唯一的第一个字符没有正确出现
- wpf - ContextMenu - 使用 ItemContainerStyle 时的奇怪行为
- bash - 用 Bash 比较文件
- reactjs - 反应保存 api 请求
- python - 如何将pyspark聚合函数结果输出为字符串?
- c++ - 当我在我的姓名输入部分输入超过 1 个单词时,代码会无限次保存数据
- reactjs - 有没有更好的方法可以根据数据类型从同一组件中的 API 获取不同的数据?
- visual-studio - Visual Studio 不显示文件夹和类