我无法在Android Studio中更新实时Firebase数据库

我只在Android Studio中进行编码已有一年了,对使用Android Studio中的Firebase还是陌生的。我正在制作一个列表应用程序,用户可以在其中创建列表并共享它们。我将Android Studios中的项目链接到Firebase存储库,并且我的帐户也正常运行。当用户登录时,我创建了一个User对象,其中存储了名称,电子邮件和密码。然后使用以下代码将其保存在Firebase中:

MainActivity.currentUser = new User(name, email, password):
MainActivity.mDatabase.child("users").child(MainActivity.auth.getUid()).setValue(MainActivity.currentUser);

我的主要User对象在多个类中被引用,因此我将该对象设为静态,以便于引用。此代码有效,当我返回Firebase实时数据库时,用户数据将使用对象的内容进行更新。当用户向应用程序添加列表或列表项时,我将更新我的User对象以包括该新列表或列表项,如您在此处看到的:

MainActivity.currentUser.getLists().add(new ItemList(lifeTime, category))

如果用户创建新列表并将其存储在名为currentUser的User对象中,则该代码将运行。然后,我尝试再次使用User对象更新firebase,以便它存储最新数据。我尝试了许多方法来执行此操作,但到目前为止似乎没有任何效果。目前,我执行此操作的代码是:

MainActivity.mDatabase.child("users").child(MainActivity.auth.getUid()).removeValue();
//MainActivity.mDatabase = FirebaseDatabase.getInstance().getReference();
MainActivity.mDatabase.child("users").child(MainActivity.auth.getUid()).setValue(MainActivity.currentUser).addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if(task.isSuccessful()){
            System.out.println("True success");
        }
        else {
            System.out.println("AHA so now you say it doesn't work");
        }
    }
});

我尝试清除用户的所有数据,然后再次存储对象。发生的是数据没有改变。代码输出“真正成功”,因此我知道行已正确执行,但是数据库中未显示添加到对象(作为Arraylist)的新列表。我不能使用datasnapshots,因为这将迫使我每次用户创建新列表或列表项只是为了能够访问当前数据时都设置一个侦听器。很抱歉,如果这个问题未能正确格式化。之前我几乎没有问过关于Stack Overflow的问题。我为此感到困惑。谁能解释为什么我的数据没有更新,或者我做错了什么?任何帮助将不胜感激。

评论