我尝试插入子级在填充编辑文本时获取的数据。代码如下
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
nama=(EditText)findViewById(R.id.nama);
alamat=(EditText)findViewById(R.id.alamat);
KTP=(EditText)findViewById(R.id.KTP);
KK=(EditText)findViewById(R.id.KK);
telepon=(EditText)findViewById(R.id.telepon);
usia=(EditText)findViewById(R.id.usia);
kode=(EditText)findViewById(R.id.kode);
pass=(EditText)findViewById(R.id.pass);
daftar=(Button)findViewById(R.id.daftar);
member=new member();
reff=FirebaseDatabase.getInstance().getReference().child(String.valueOf(kode));
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists())
maxid=(dataSnapshot.getChildrenCount());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
daftar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int age=Integer.parseInt(usia.getText().toString().trim());
long telp=Long.parseLong(telepon.getText().toString().trim());
long kel=Long.parseLong(KK.getText().toString().trim());
long pen=Long.parseLong(KTP.getText().toString().trim());
member.setNama(nama.getText().toString().trim());
member.setAlamat(alamat.getText().toString().trim());
member.setPass(pass.getText().toString().trim());
member.setUsia(age);
member.setKK(kel);
member.setKTP(pen);
member.setTelepon(telp);
reff.child(String.valueOf(maxid+1)).setValue(member);
}
});
}
在此代码中,应使用我们在布局表单中填写的“Kode”插入数据的子级。警告是“无效的 Firebase 数据库路径:androidx.appcompat.widget.AppCompatEditText”
最佳答案
您的 kode
变量是 UI 中的 EditText
View ,它不是数据库中的有效路径。您可能想要使用用户在 EditText
中输入的值,您可以这样做:
String value = kode.getText().toString();
reff=FirebaseDatabase.getInstance().getReference().child(value);
另请参阅:
关于java - 插入数据时出现无效数据库路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62003939/