java - 插入数据时出现无效数据库路径错误

标签 java android firebase firebase-realtime-database

我尝试插入子级在填充编辑文本时获取的数据。代码如下

@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/

相关文章:

git - 如何同时使用 Github 和 Firebase?

firebase - 将 Stream Building 与特定的 Firestore 文档结合使用

java - 使用ImageIO.write Java实时保存jpg

java - 将数组用作变量时未获取完整数组

java - 如何更改布局的内容?

java - AdMob libGDX 与 Google Play 服务

java - Tomcat 8 和 Websocket

android - 在我的 webview 应用程序上的空对象引用上调用虚拟方法 'int android.graphics.Bitmap.getWidth()'

android - 如何在 Android 中以编程方式启用/禁用辅助功能服务

java - 我想检查我的用户输入是否包含作为我的 firestore 数据库中的文档的子字符串,这在 Java 中可能吗? (Android 工作室)