【问题标题】:Not able to write complete data into firebase database when use finish method in onComplete在 onComplete 中使用完成方法时无法将完整数据写入 Firebase 数据库
【发布时间】:2017-04-19 10:18:11
【问题描述】:

我正在使用以下代码将 postingdata 添加到 Firebase 中。问题是,当我在onComplete 中评论finish 方法时,我的所有数据都正确写入了firebase 数据库。但是当我取消注释finish 方法时,大部分数据都没有写入数据库。我想用finish方法写完整的数据。

mUserRefrence.child(user.getUid()).setValue(postingdata).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        hideProgressDialog();
        Toast.makeText(LoginActivity.this, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
    }
}).addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        hideProgressDialog();
        Toast.makeText(LoginActivity.this, getString(R.string.login_success), Toast.LENGTH_SHORT).show();

        startActivity(new Intent(LoginActivity.this, MainActivity.class));
        finish();
    }
});

【问题讨论】:

  • “大部分数据”是什么意思?您能向我们展示一下数据库结构并解释一下什么是写的,什么不是写的吗?
  • 我正在发送数据 {email=t@t.com, name=david ,photoUrl=i.stack.imgur.com/tHOLT.png} 当我评论完成时,当我取消注释完成功能时,上面的数据会正确显示仅电子邮件写入数据库
  • @Frank 请解决我的问题

标签: android firebase firebase-realtime-database firebase-storage


【解决方案1】:

发生这种情况是因为您在 firebase 完成当前任务以将用户数据存储到 firebase 数据库之前开始新活动。你正在调用 finsh();这将停止执行当前任务并将移动到新的活动。您可以做的是检查任务是否成功,然后在您的案例 main Activity 中打开新活动。这样做可能会对你有所帮助 -

   }).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
     if (!task.issuccessful()) {

    // this piece of code will execute if task is Unsuccessful

     hideProgressDialog();
    Toast.makeText(LoginActivity.this, getString(R.string.login_Unsuccess),   Toast.LENGTH_SHORT).show();
     } 
   else {
      // this piece of cade will execute if task is successful

       hideProgressDialog();
       startActivity(new Intent(LoginActivity.this, MainActivity.class));
       finish();
    } 


    }
 });

【讨论】:

    【解决方案2】:

    Firebase 数据库规则模拟器存在问题。请查看状态链接:https://status.firebase.google.com/incident/Console/17012,现在显示已解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      相关资源
      最近更新 更多