javascript - 如何将数据推送到 Firestore 中的嵌套数组中?
问题描述
我怎样才能做到这一点?我为用户集合中的每个用户都有一个数据结构,我为存储在集合中的用户对象创建了自己的模式。
我想在这个对象中初始化一个 favoriteMovies 集合,这样我就可以在里面添加电影对象。
这是我尝试做的一个例子:
async function signUp(email, password){
const {user} = await auth.createUserWithEmailAndPassword(email, password)
// initialise the schema for the data
const userInitialised = await db.collection('users').doc(user.uid).set(userSchemaObject(user.uid))
return userInitialised;
}
那么到目前为止的架构:
export default function userSchemaObject(uuid){
return {
uuid,
favmovies:[]
}
}
解决方案
我在问如何将数据推送到嵌套数组
根据您的问题和评论,您的favmovies
字段应该是 Array 类型,并且似乎不是“嵌套”的。因此,您应该简单地使用arrayUnion()
以将数据推送到此数组。
下面的代码演示了如何创建一个带有空数组字段的文档,然后演示如何推送一个值。
const db = firebase.firestore();
const newDocRef = db.collection('test').doc();
newDocRef
.set({
uuid: 'uuid_value',
favmovies: [],
})
.then(() => {
newDocRef.update({
favmovies: firebase.firestore.FieldValue.arrayUnion('movie1'),
});
});
请注意,您可以将多个元素传递给该arrayUnion()
方法。
newDocRef.update({
favmovies: firebase.firestore.FieldValue.arrayUnion(
'movie1',
'movie2'
),
});
推荐阅读
- javascript - Android:下载 JS 包后应用程序崩溃
- batch-file - 批量使用命令行参数的 if 语句
- java - 使用axis2生成时自定义Web服务的端点?
- reactjs - console.log 未显示 useState 信息
- junos-automation - textfsm 使用 junos 设置策略解析多行
- postgresql - 如何在 Kubernetes 集群中将 Openkm 与 postgres 集成
- elixir - 寻找更好的方法来运行 elixir 代码
- html - 如何使用 Visual Basic.NET 和 ASP.NET MVC 创建下拉列表并检索所选项目的值?
- python - 2800 次迭代后的 Python IndexError
- html - 将 JS 依赖项构建到 html 文件中