Flatter firebase实时数据库如何更新多个子项?

Flatter firebase实时数据库如何更新多个子项?,firebase,firebase-realtime-database,flutter,Firebase,Firebase Realtime Database,Flutter,我正在尝试更新flifter中的多个子项:更新作业中的所有订单。在安卓系统中,我可以做到: public void setJobOrder(final ArrayList<Job> jobs) { Map map = new HashMap(); for (int i = 0; i < jobs.size(); i++) { map.put(jobs.get(i).id + "/order", i + 1); } jobsRef.updateChildr

我正在尝试更新flifter中的多个子项:更新作业中的所有订单。在安卓系统中,我可以做到:

public void setJobOrder(final ArrayList<Job> jobs) {
  Map map = new HashMap();
  for (int i = 0; i < jobs.size(); i++) {
    map.put(jobs.get(i).id + "/order", i + 1);
  }
  jobsRef.updateChildren(map);
}
public void setJobOrder(最终ArrayList作业){
Map Map=newhashmap();
对于(int i=0;i
在《颤栗》中,我想到了这样一件事:

Future setJobOrder(List<Job> jobs) async{
  Map map = {};

  for(int i = 0; i<jobs.length; i++){
    map[jobs[i].id] = {'order': i};
  }

  return (await _getJobsRef()).update(map);
}
Future setJobOrder(列出作业)异步{
Map={};

对于变量声明中的(int i=0;i而不是
Map={}
,请尝试使用:

Map<String, dynamic> map = {};
Map={};
这项工作:

Future setJobOrder(List<Job> jobs) async{
  Map map = {};
  for(int i = 0; i<jobs.length; i++){
    map[jobs[i].id + '/order'] = i;
  }

  return (await _getJobsRef()).update(map.cast<String, dynamic>());
}
Future setJobOrder(列出作业)异步{
Map={};

对于(int i=0;i创建映射,其中键为路径和值 然后使用
update
方法更新子项

例如,如果我们想更新两个用户的名称,我们将为每个用户传递路径和值,然后更新到main ref

Map<String,dynamic> childrenPathValueMap = {};

childrenPathValueMap["users/${userId1}/name"] = "user value 1";
childrenPathValueMap["users/${userId2}/name"] = "user value 2";

FirebaseDatabase.instance.reference().update(childrenPathValueMap);
Map childrenPathValueMap={};
childrenPathValueMap[“users/${userId1}/name”]=“user value 1”;
childrenPathValueMap[“users/${userId2}/name”]=“user value 2”;
FirebaseDatabase.instance.reference().update(childrenPathValueMap);
Map<String,dynamic> childrenPathValueMap = {};

childrenPathValueMap["users/${userId1}/name"] = "user value 1";
childrenPathValueMap["users/${userId2}/name"] = "user value 2";

FirebaseDatabase.instance.reference().update(childrenPathValueMap);