按下按钮时未将数据写入Firebase

时间:2016-09-17 12:46:07

标签: java android firebase firebase-realtime-database

好的,所以我希望有人可以帮我解决这个问题,因为过去几天我一直在尝试一系列不同的解决方案。在我的活动中,我有一个EditText和一个Button,我正在尝试将该用户输入写入Firebase。我运行应用程序时没有出现任何错误,但是,当我按下按钮时,没有任何反应。

这是我的班级:

private EditText userEmail;
Button sendInviteButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Firebase.setAndroidContext(this);
    setContentView(R.layout.activity_user_registration);

    userEmail = (EditText) findViewById(R.id.user_email);
    sendInviteButton = (Button) findViewById(R.id.sendInviteButton);

}

public void btn(View view) {
    sendInviteButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Firebase ref = new Firebase("https://app-1318.firebaseio.com/clients");
            String enteredUserEmail = userEmail.getText().toString();
            ref.child("userBackgroundCheck").setValue(enteredUserEmail);
        }
    });
}

我在XML中有一个onClick for the button,所以我真的不知道为什么这些数据没有被发送到Firebase。

最后,我们是否应该为此部分使用Firebase的根URL?:

Firebase ref = new Firebase("https://app-1318.firebaseio.com/clients");

这将是:

Firebase ref = new Firebase("https://app-1318.firebaseio.com");

2 个答案:

答案 0 :(得分:2)

您是否尝试在RealTime数据库下添加规则?当您转到实时数据库时,单击“规则”选项卡。添加以下行

// These rules give anyone, even people who are not users of your app,
// read and write access to your database
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

看看它是否有效!

另外,为什么要以旧方式存储数据。以下是用于在实时数据库中保存数据的new doc

答案 1 :(得分:1)

尝试使用Firebase控制台并编辑数据库规则。 下面是pic样本。

Change your rules to that and see