当前位置: 首页 > 知识库问答 >
问题:

在onComplete中使用finish方法时,无法将完整数据写入firebase数据库

端木震博
2023-03-14

我正在使用下面的代码将postingdata添加到firebase中。问题是,当我在onComplete中注释finish方法时,我的所有数据都正确写入firebase数据库。但是,当我取消对finish方法的注释时,大多数数据都不是用datbase编写的。我想用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();
    }
});

共有2个答案

徐嘉勋
2023-03-14

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

吴举
2023-03-14

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

   }).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();
    } 


    }
 });
 类似资料:
  • 我设法将数据插入身份验证,但无法插入数据库: 代码: 错误: E/AndroidRuntime:致命异常:主进程:com。实例budgetingapp,PID:11507 java。lang.RuntimeException:在类androidx上找到了名称getText的冲突获取程序。appcompat。小装置。AppCompativeText位于com。谷歌。火基。消防商店。util。Cust

  • 该库只支持Double、Boolean和String。我现在真困惑。怎么可能?

  • 我正在尝试将有关集合用户中注册用户的数据写入我的Cloud Firestone用户,当然它必须与授权中的UID代码相关联(注册/登录系统正常工作并在我的Firebase中编写auth)。 XML注册按钮: JAVA寄存器: 。。。 。。。 在Cloud Firestone中,我刚刚创建了集合用户。我注意到在工具中 ✓ 已连接 但即使我已经点击并似乎构建正确,底部的“将云Firestone添加到你的

  • 我正在尝试用Firebase制作一个简单的Android应用程序。 目前,我只是试图从Firebase实时保存用户数据库。但由于某种原因它不起作用。另一方面,身份验证工作完美。 数据库本身没有显示任何内容。它总是显示“null” 我一直在关注这个YouTube教程,并一直在做一些类似的事情。 当我尝试创建一个用户并将其发送到数据库时,运行的程序没有给出任何答案。我有一个进度条,一旦setValue

  • 首先,我很抱歉我的英语,我希望你能理解。这是我的第一个android应用程序,我尝试使用Firebase进行身份验证和数据库。身份验证工作正常,但我不能读写实时数据库。以下是我的数据库规则和结构: 我试图将数据库中的数据添加到reclyclerview中,但我的代码止步于AddValueEventListener。然后我尝试添加一个简单的数据到数据库,但它也不起作用。我也尝试将相同的代码放入一个活

  • 从昨天开始,我一直在尝试为我的Firebase数据库添加一个值,我已经尝试了几种方法,但我做不到。 当用户查看一张奖赏卡时,调用addCard,该卡应添加到当前用户1卡中,并且每次向其添加一张卡时,不会删除该值。 这是我的RewardedAd(正确的广告节目)代码: 这是addCard: