Javascript 将元素添加到Firestore中的数组

Javascript 将元素添加到Firestore中的数组,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我正在尝试将多个uid添加到followers&following数组中。追随者/追随者是用户模型中的一个字段。每个usersId都与一篇文章相关联,单击时,id进入当前用户跟随字段,当前用户id进入发布用户的跟随者字段。我已经在谷歌上搜索并看到了这个解决方案,但是我得到了一个错误“firebasererror函数DocumentReference.update()需要1个参数,但被2调用” 我正在使用ReactNative和Firestore 7.9.0版 这是我的密码。非常感谢 addFol

我正在尝试将多个uid添加到followers&following数组中。追随者/追随者是用户模型中的一个字段。每个usersId都与一篇文章相关联,单击时,id进入当前用户跟随字段,当前用户id进入发布用户的跟随者字段。我已经在谷歌上搜索并看到了这个解决方案,但是我得到了一个错误“firebasererror函数DocumentReference.update()需要1个参数,但被2调用”

我正在使用ReactNative和Firestore 7.9.0版

这是我的密码。非常感谢

addFollows = (post) => {
 const db = firebase.firestore()
 let userId = firebase.auth().currentUser.uid
 let followingId = post.uid
 const followUserRef = db.collection('users').doc(userId)
 const followingRef =  db.collection('users').doc(followingId) 
        followUserRef.update({ 
            following: true },
            { merge: true },
        followingRef.update({ 
            followers: true },
            { merge: true }
        ))}

您确实向
update()
传递了两个参数,这是不正确的。它不接受第二个参数,如
set()
,因此不要传递
{merge:true}

followUserRef.update({ following: true })
followingRef.update({ followers: true })

您确实向
update()
传递了两个参数,这是不正确的。它不接受第二个参数,如
set()
,因此不要传递
{merge:true}

followUserRef.update({ following: true })
followingRef.update({ followers: true })

基于您在这里提到的内容:“我正在尝试将多个UID添加到一个followers&following数组”

听起来你只是想: userA是否跟随userB并相应地更新following/followers字段

如果是这样的话,你会想要这样的东西:

以下内容:[……,用户出价]

关注者:[……,用户帮助]

您需要使用
FieldValue.arrayUnion
。正在尝试更改此选项:

followUserRef.update({ following: true }, { merge: true });
followingRef.update({ followers: true },{ merge: true });
为此:

followUserRef.update({following: firebase.firestore.FieldValue.arrayUnion(followingId)})
followingRef.update({followers: firebase.firestore.FieldValue.arrayUnion(userId)})

这应该允许您向userA“followers”数组添加一个新索引(followind id),并将userId添加到userA现在关注的人的关注者数组。

基于您在这里提到的内容:“我正在尝试向关注者和关注者数组添加多个uid”

听起来你只是想: userA是否跟随userB并相应地更新following/followers字段

如果是这样的话,你会想要这样的东西:

以下内容:[……,用户出价]

关注者:[……,用户帮助]

您需要使用
FieldValue.arrayUnion
。正在尝试更改此选项:

followUserRef.update({ following: true }, { merge: true });
followingRef.update({ followers: true },{ merge: true });
为此:

followUserRef.update({following: firebase.firestore.FieldValue.arrayUnion(followingId)})
followingRef.update({followers: firebase.firestore.FieldValue.arrayUnion(userId)})

这将允许您向userA“followers”数组添加新索引(以下id),并将userId添加到userA现在跟踪的人的追随者数组。

非常感谢您的回复…但它不会添加多个id,现在它只是覆盖了现有的一个问题,这是我之前遇到的问题,并且遇到了合并语法。然后你应该编辑这个问题,以更详细地解释什么没有按照你期望的方式工作。提供文件的前后内容,以便我们查看。你肯定不能像现在这样传递两个参数,所以也要更新代码。我想我已经详细解释了???我说我正在尝试向一个字段添加多个用户ID,使用merge的解决方案就是我在堆栈溢出中发现的……该解决方案建议添加merge,但这就是我遇到的错误。谢谢你的帮助。你有一个新问题,与你在问题中描述的问题不同。如果你能更详细地解释,以便任何人都能重现你的观察结果,那将是很有帮助的。当你有一个新问题,你真正应该做的是发布一个全新的问题。堆栈溢出并不能很好地处理一系列问题。非常感谢您的回复…但它并没有添加多个id,现在它只是覆盖了现有的一个问题,这是我之前遇到的问题,并且遇到了合并语法。然后你应该编辑这个问题,以更详细地解释什么没有按照你期望的方式工作。提供文件的前后内容,以便我们查看。你肯定不能像现在这样传递两个参数,所以也要更新代码。我想我已经详细解释了???我说我正在尝试向一个字段添加多个用户ID,使用merge的解决方案就是我在堆栈溢出中发现的……该解决方案建议添加merge,但这就是我遇到的错误。谢谢你的帮助。你有一个新问题,与你在问题中描述的问题不同。如果你能更详细地解释,以便任何人都能重现你的观察结果,那将是很有帮助的。当你有一个新问题,你真正应该做的是发布一个全新的问题。堆栈溢出并不能很好地处理一系列问题。