【问题标题】:the data is submitted in firebase once in each run每次运行时,数据都会在 firebase 中提交一次
【发布时间】:2018-03-16 22:15:24
【问题描述】:

我正在将数据插入到我的 firebase 实时数据库中。我为它写了一个代码。但是,当我运行程序时,首先它会正确插入并提交数据,但是当我在同一运行中移动到其他活动(例如登录)并返回插入其他数据时,它不会插入它。

当我想在我的firebase中插入数据时,每次我都必须重新安装程序并再次安装并首先执行,

这是我的代码

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fill_request_page);
    firebaseAuth=FirebaseAuth.getInstance();

    Title = (EditText) findViewById(R.id.Title);
    Content = (EditText) findViewById(R.id.Content);
    insert =(Button) findViewById(R.id.insert);
    status=(EditText)findViewById(R.id.statustxt);
    edittxtDate =(EditText) findViewById(R.id.edittxtDate);
    edittxtTime =(EditText) findViewById(R.id.edittxtTime);
    edittxtExpDate=(EditText) findViewById(R.id.edittxtExpDate);
    imagebtnDate = (ImageButton) findViewById(R.id.imagebtnDate);
    imagebtnTime = (ImageButton) findViewById(R.id.imagebtnTime);
    imagebtnExpDate=(ImageButton) findViewById(R.id.imagebtnExpDate);
    location = (Spinner) findViewById(R.id.location);
    typeof=(Spinner)findViewById(R.id.typeof);
    database = FirebaseDatabase.getInstance();
    ref1 = database.getReference("requests");



    insert.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            btnInsert1();
        }
    });


private void getValues(){
    request1.setTitle(Title.getText().toString());
    request1.setContent(Content.getText().toString());
    request1.setDate(edittxtDate.getText().toString());
    request1.setTime(edittxtTime.getText().toString());
    request1.setLocation(location.getSelectedItem().toString());
    request1.setTypeof(typeof.getSelectedItem().toString());
    request1.setExpDate(edittxtExpDate.getText().toString());
    request1.setStatus(status.getText().toString());
}
private void btnInsert1(){

    database = FirebaseDatabase.getInstance();
    ref1 = database.getReference("requests");
    DatabaseReference ref2=ref1.push();
    String id=ref2.getKey();
    request1 =new requests();
    getValues();
    ref1.child(id).setValue(request1);
    Toast.makeText(FillRequestPage.this,"Data inserted....",Toast.LENGTH_SHORT).show();

}

【问题讨论】:

  • 返回活动时是否再次点击按钮?如果是这样,您是否在调试器中运行代码并检查您的 btnInsert1() 方法是否被触发?
  • 我认为我的 btnInsert 方法存在问题,因为我在同一个活动中有另一个按钮可以很好地工作而无需重新运行程序
  • athor 按钮用于在firebase中上传图片,无需重新运行代码即可正常工作
  • 您只在按钮点击时添加数据?
  • 是的,我有 4 个 EditTexts 允许用户插入信息。一旦用户按下按钮,它就必须插入到 firebase

标签: android firebase-realtime-database


【解决方案1】:

我的问题来自 firebase 本身,访问被拒绝,我刚刚编辑了规则,所以用户可以读取和写入我的数据库并且它可以工作!

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    相关资源
    最近更新 更多