如何将现有列表更改为新列表? || 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 实时数据库的主要内容,如果未能解决你的问题,请参考以下文章
只要新值与当前值不同,Oracle SQL 将字段的值更改为列表中的其他值?