【问题标题】:What's wrong in this code for firebase database? [closed]firebase 数据库的这段代码有什么问题? [关闭]
【发布时间】:2018-01-08 08:44:09
【问题描述】:

我希望能够复制 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();
        }     
    }
});

【问题讨论】:

  • 这段代码有什么问题?
  • 您没有告诉我们您的问题是什么 - 这意味着我们无法帮助您。
  • 如果当前用户的uid下已有数据,则不应该添加数据。但是,如果当前用户的 uid 下已经有一个,它会替换数据。这是不应该做的

标签: java android firebase firebase-realtime-database


【解决方案1】:

你需要更改这行代码:

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() 方法来实际获取引用。

希望对你有帮助。

【讨论】:

  • 让我试试这段代码。
  • 很抱歉,该代码不起作用。它现在所做的是,如果我更改编辑文本中的名称,它会上传数据。并且,它能够将数据上传到驱动部分和父部分。我希望它能够只上传一次给司机或父母
  • 然后相应地更改逻辑。请记住,getRef() 方法是必需的。
  • getRef() 是做什么的?很抱歉问了一些愚蠢的问题,因为这只是我的第二个应用程序,我不太了解。
  • getRef() 实际上是获取您要比较的记录的引用。
猜你喜欢
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
相关资源
最近更新 更多