这个firebase数据库代码有什么问题?

时间:2017-08-01 12:59:04

标签: java android firebase firebase-realtime-database

我希望能够复制uid(图中以蓝色加下划线)并将其与当前用户的uid进行比较。而且,只有在同一个uid下没有数据时,才会写入数据库。这是为了让每个用户只上传一次数据。

Link to the database screenshot

buttonSubmit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (mDatabaseReference.child("drivers").child(userid).toString() != userid || mDatabaseReference.child("parents").child(userid).toString() != useremail) {
            if (!radiobutton1.isChecked() && !radiobutton2.isChecked()) {
                Toast.makeText(LoggedinActivity.this, "Please select either Driver or Parent", Toast.LENGTH_LONG).show();
            } else if (radiogroup.getCheckedRadioButtonId() == radiobutton1.getId()) {
                typestring = "driver";
                Users users = new Users(useremail, editText.getText().toString(), typestring);
                mDatabaseReference.child("drivers").child(userid).setValue(users);
            } else if (radiogroup.getCheckedRadioButtonId() == radiobutton2.getId()) {
                typestring = "parent";
                Users users = new Users(useremail, editText.getText().toString(), typestring);
                mDatabaseReference.child("parents").child(userid).setValue(users);
            }
        }
        else {
            Toast.makeText(LoggedinActivity.this, "Information already submitted", Toast.LENGTH_LONG).show();
        }     
    }
});

1 个答案:

答案 0 :(得分:0)

您需要更改以下代码行:

mDatabaseReference.child("drivers").child(userid).toString() != userid || mDatabaseReference.child("parents").child(userid).toString() != useremail) {

mDatabaseReference.child("drivers").child(userid).getRef().toString() != userid || mDatabaseReference.child("parents").getRef().child(userid).toString() != useremail) {

正如您可能看到的,我添加了getRef()方法来实际获取引用。

希望它有所帮助。