如何将现有列表更改为新列表? || android - firebase 实时数据库

Posted

技术标签:

【中文标题】如何将现有列表更改为新列表? || android - firebase 实时数据库【英文标题】:How can I change an exist list, to a new list? || android - firebase realtime database 【发布时间】:2020-05-31 11:07:57 【问题描述】:

我想将现有的“类别”列表更改为新列表。

我知道我的问题出在“setPriority()”中,但我没有找到正确的方法。

我的数据库结构:

我的代码:

private void updateData() 
            database = FirebaseDatabase.getInstance();
            mDatabaseRef = database.getReference();


            mDatabaseRef
                    .child("users")
                    .child(Login.userId)
                    .child("categories")
                    .setValue(categories)
                    .addOnCompleteListener(new OnCompleteListener<Void>() 
                        @Override
                        public void onComplete(@NonNull Task<Void> task) 

                            if (task.isSuccessful()) 

                                //Update success
                             else 

                                //Update fail
                            
                        
                    );
        

谢谢。

【问题讨论】:

你能添加你的数据库结构吗? 【参考方案1】:

无需查询数据库来更新列表。您可以简单地调用setValue 用新列表覆盖现有列表。检查以下:

database = FirebaseDatabase.getInstance();
mDatabaseRef = database.getReference();

mDatabaseRef
    .child("users")
    .child(Login.userId)
    .child("categories")
    .setValue(categories)
    .addOnCompleteListener(new OnCompleteListener<Void>() 
        @Override
        public void onComplete(@NonNull Task<Void> task) 

            if (task.isSuccessful()) 

                //Update success
             else 

                //Update fail
            
        
    );

【讨论】:

谢谢你的回答,我很感激。您如何准确地编写“.updateChildren(categories)”?我的意思是,你以前写什么? 只需将.setValue(categories) 替换为.updateChildren(categories) 我都试过了,不幸的是它们都不起作用。 “setValue”删除了我的列表。此外,“updateChildren”会停止我的应用程序。 如果categories 中有数据,那么setValue 应该可以工作。避免updateChildren,因为它是必需的key-value 让我们continue this discussion in chat。

以上是关于如何将现有列表更改为新列表? || android - firebase 实时数据库的主要内容,如果未能解决你的问题,请参考以下文章

将 android 文本视图更改为列表视图

只要新值与当前值不同,Oracle SQL 将字段的值更改为列表中的其他值?

android 适配器数据更改为通知主机活动

如何将列表中的字符串值更改为 Python 中的浮点数

Python 2 如何将 values_list 操作返回的 unicode 列表更改为字符串列表

如何阻止 pyspark 数据框更改为列表?