Firebase 如何将数组项添加到文档Firestore Flatter
我想在我的文档中添加(或首先创建)一个这样的映射数组:Firebase 如何将数组项添加到文档Firestore Flatter,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我想在我的文档中添加(或首先创建)一个这样的映射数组: videos - 0 - url : myurl - 1 - url : another one 通过控制台我可以做到这一点,但我不知道如何在代码中做到这一点。这是我当前的设置方法: wait databaseReference.collection(“${mycl}”).doc(“${mydoc}”) .设置({ “url”:url, }); 这将向数据库中添加一个简单的字符串。如何在我前面提到的结构中添加一个项目 更新
videos
- 0
- url : myurl
- 1
- url : another one
通过控制台我可以做到这一点,但我不知道如何在代码中做到这一点。这是我当前的设置方法:
wait databaseReference.collection(“${mycl}”).doc(“${mydoc}”)
.设置({
“url”:url,
});
这将向数据库中添加一个简单的字符串。如何在我前面提到的结构中添加一个项目
更新
如果我有这个:
videos
- 0
- url : myurl
- name : myname
- 1
- url : another one
- name : myname
您可以通过以下方式添加阵列:-
List<Map> videos=[
{
'url':'url',
'name':'Harry',
},
{
'url':'url',
'name':'John',
}
];
await databaseReference.collection("${mycol}").doc("${mydoc}")
.set({
'url': FieldValue.arrayUnion([videos]),
});
列出视频=[
{
“url”:“url”,
“名字”:“哈利”,
},
{
“url”:“url”,
“姓名”:“约翰”,
}
];
等待databaseReference.collection(“${mycol}”).doc(“${mydoc}”)
.设置({
“url”:FieldValue.arrayUnion([视频]),
});
现在,如果您已经添加了3个元素,并且将来要添加第4个元素,那么:-
List<Map> new=[
{
'url':'url for 4th video',
'name':'4th person name',
},
];
await databaseReference.collection("${mycol}").doc("${mydoc}")
.update({
'url': FieldValue.arrayUnion([videos]),
});
列出新的=[
{
“url”:“第四个视频的url”,
“姓名”:“第四人名”,
},
];
等待databaseReference.collection(“${mycol}”).doc(“${mydoc}”)
.更新({
“url”:FieldValue.arrayUnion([视频]),
});
FielValue.arrayUnion的用途是自动将新数据添加到firebase,即现在数组中有4个元素(3个以前添加,1个最近添加)。您可以通过以下方式添加数组:-
List<Map> videos=[
{
'url':'url',
'name':'Harry',
},
{
'url':'url',
'name':'John',
}
];
await databaseReference.collection("${mycol}").doc("${mydoc}")
.set({
'url': FieldValue.arrayUnion([videos]),
});
列出视频=[
{
“url”:“url”,
“名字”:“哈利”,
},
{
“url”:“url”,
“姓名”:“约翰”,
}
];
等待databaseReference.collection(“${mycol}”).doc(“${mydoc}”)
.设置({
“url”:FieldValue.arrayUnion([视频]),
});
现在,如果您已经添加了3个元素,并且将来要添加第4个元素,那么:-
List<Map> new=[
{
'url':'url for 4th video',
'name':'4th person name',
},
];
await databaseReference.collection("${mycol}").doc("${mydoc}")
.update({
'url': FieldValue.arrayUnion([videos]),
});
列出新的=[
{
“url”:“第四个视频的url”,
“姓名”:“第四人名”,
},
];
等待databaseReference.collection(“${mycol}”).doc(“${mydoc}”)
.更新({
“url”:FieldValue.arrayUnion([视频]),
});
FielValue.arrayUnion的目的是自动将新数据添加到firebase,即现在数组中有4个元素(3个以前添加,1个最近添加)。您可以用与现在类似的方式执行此操作。例如:
await _firestore.collection(mycol).document(mydoc)
.setData({
'videos': arrayOfUrls,
// OR
'videos': mapOfUrls
});
Firebase支持开箱即用的阵列和地图 你可以用与你现在做的类似的方式来做这件事。例如:
await _firestore.collection(mycol).document(mydoc)
.setData({
'videos': arrayOfUrls,
// OR
'videos': mapOfUrls
});
Firebase支持开箱即用的阵列和地图 查看我的更新,请更新我希望它有帮助,如果是,我请求您接受它作为答复,但在这种情况下,我在那里设置了内容。。我可以“合并”它吗?例如,如果有3项,我想添加第四项。。你明白我的意思吗?等待更新答案。是否自动检查是否有元素(如果是,则更新,如果未设置)?请查看我的更新,更新我希望它有帮助,如果是,我请求你接受它作为答案,但在这种情况下,我在那里设置了内容。。我可以“合并”它吗?例如,如果有3项,我想添加第四项。。你明白了吗?请等待更新答案。是否自动检查是否有元素(如果是,则更新,如果未设置)?