一段时间不活动后,setValue不起作用

时间:2018-07-29 13:20:19

标签: android firebase firebase-realtime-database push setvalue

我正在尝试在Firebase实时数据库中推送节点并为其设置一些值,但是由于某种原因,它的工作方式不一致。这是我用来推送值的方法。更具体地说,当我启动该应用程序时,它运行良好,但是在说该应用程序仅在无活动的情况下运行5分钟后,我将无法再使用setValue。图片的上传效果很好。

void addItemToServerShop(ShopItem shopItem, ShopData shopData, Context context){
    DatabaseReference shopContainerRef = database.getReference("ShopsContainer").child(getShopData().getShopPushID()).child("ShopItems").push();
    shopContainerRef.child("Name").setValue(shopItem.getName());
    shopContainerRef.child("Filename").setValue(shopItem.getFileName());
    uploadImage(shopItem.getFileName(), shopData, context);
}

控制台绝对不会显示任何信息。 我尝试使用Log.e()语句跟踪错误,如下所示。

void addItemToServerShop(ShopItem shopItem, ShopData shopData, Context context){
    DatabaseReference shopContainerRef = database.getReference("ShopsContainer").child(getShopData().getShopPushID()).child("ShopItems").push();
    shopContainerRef.child("Name").setValue(shopItem.getName()).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if(task.isComplete()){
                Log.e("Task","Completed");
            }
            if(task.isCanceled()){
                Log.e("Task","Canceled");
            }
            if(task.isSuccessful()){
                Log.e("Task","Successful");
            }
            Log.e("Result is",String.valueOf(task.getResult()));
        }
    });
    Log.e("path is", String.valueOf(shopContainerRef.child("Name").getRef()));
    shopContainerRef.child("Filename").setValue(shopItem.getFileName());
    uploadImage(shopItem.getFileName(), shopData, context);
}

当setValue不执行时,我没有记录OnCompleteListener中的任何语句,但是图片已上传到存储中,所以我猜想任务永远不会完成。我不知道如何从这里开始。任何帮助或建议,表示赞赏!

0 个答案:

没有答案