Javascript 基于firestore上的对象值从数组中删除对象(贴图)
使用此线程作为参考,我想进一步了解如何从firestore中的数组中删除对象 我的firestore设置如下:Javascript 基于firestore上的对象值从数组中删除对象(贴图),javascript,firebase,react-native,google-cloud-firestore,Javascript,Firebase,React Native,Google Cloud Firestore,使用此线程作为参考,我想进一步了解如何从firestore中的数组中删除对象 我的firestore设置如下: Users(collection) -> 12345(document) -> myArray:[{x:"hello", y:"please"}, {x:"hello", y:"thanks"}] 我正在尝试根据特定对象的值排列或删除该对象 这是我当前的代码,尽管阅读了其他帖子说应该这样做,但
Users(collection) -> 12345(document) -> myArray:[{x:"hello", y:"please"}, {x:"hello", y:"thanks"}]
我正在尝试根据特定对象的值排列或删除该对象
这是我当前的代码,尽管阅读了其他帖子说应该这样做,但它不起作用
import firestore from '@react-native-firebase/firestore'; //EDIT
let obj = {x:"hello", y:"thanks"}
firestore()
.collection("Users")
.doc("12345")
.update({
myArray: firestore.FieldValue.arrayRemove(obj),
}).then(r =>console.log("YEAAAH"))
有什么建议我可以试试吗?或者有什么好的解决办法
另外,我在React本机应用程序的客户端执行此操作,我希望不必调用端点。不清楚如何声明
firestore()
方法以及在代码中使用的firestore
变量:
firestore() <= What exactly is firestore()?
.collection("Users")
.doc("12345")
.update({
myArray: firestore.FieldValue.arrayRemove(obj), <= What exactly is firestore?
})
.then(r =>console.log("YEAAAH"))
不清楚如何声明
firestore()
方法以及在代码中使用的firestore
变量:
firestore() <= What exactly is firestore()?
.collection("Users")
.doc("12345")
.update({
myArray: firestore.FieldValue.arrayRemove(obj), <= What exactly is firestore?
})
.then(r =>console.log("YEAAAH"))
你犯了什么错误?您确定
firestore().collection(“用户”)…
正确吗?它不应该是firebase.firestore().collection(“Users”)…
我没有收到任何错误。。它根本没什么作用。我编辑了我的问题以提供更多的上下文。您是否参考了文档并看到了Firebasers的答案。还有,这里有很多@Jay,谢谢你的推荐。我看了所有3个,我做的基本上与第二个参考相同,但我试图理解为什么它不起作用。最后一个参考是指与我试图做的不同的事情。。我删除的是obj而不是元素。数组中的元素和对象可以互换使用,因为它们都引用存储在数组索引中的“thing”。它们也称为数组元素或aka项。看见这一点很重要,因为在Firestore中,您必须精确匹配对象/元素/项目/事物,才能根据上面的链接将其删除Š您会遇到哪个错误?您确定firestore().collection(“用户”)…
正确吗?它不应该是firebase.firestore().collection(“Users”)…
我没有收到任何错误。。它根本没什么作用。我编辑了我的问题以提供更多的上下文。您是否参考了文档并看到了Firebasers的答案。还有,这里有很多@Jay,谢谢你的推荐。我看了所有3个,我做的基本上与第二个参考相同,但我试图理解为什么它不起作用。最后一个参考是指与我试图做的不同的事情。。我删除的是obj而不是元素。数组中的元素和对象可以互换使用,因为它们都引用存储在数组索引中的“thing”。它们也称为数组元素或aka项。看见这一点很重要,因为在Firestore中,您必须精确匹配对象/元素/项目/事物,才能根据上面的链接将其删除#2感谢您的帮助!我编辑了关于如何导入firestore模块的问题。在我的代码的其他部分,例如firestore().collection('Users').doc(auth().currentUser.uid)、update({following threads:firestore.FieldValue.arrayRemove(data.docRefId)}),我就是这样使用的。但是正如您所看到的,数组不是由对象组成的。@IlllIl数组只是由对象组成的。字符串是对象,Int是对象,另一个数组是对象。在你的数组中,这个{x:“hello”,y:“please”}
是一个对象。根据你在这里和上面的评论,你似乎无法理解为什么没有从数组中删除该对象。我建议您首先尝试使用一个简单的HTML页面(没有捆绑包和模块):使用我的答案中的代码,它确实有效,并检查它在您的情况下是否有效。另一个想法是:您确定在数组中使用贴图(对象)吗?你能分享你的Firestore数据库的屏幕截图吗?嘿@IlllIl你有时间进一步查看提议的解决方案吗?@RenaudTarnec我让它工作了。我的项目指向prod env而不是dev env。我完全理解这是怎么回事,这就是为什么会有困惑。无论如何,谢谢你的帮助。谢谢你的帮助!我编辑了关于如何导入firestore模块的问题。在我的代码的其他部分,例如firestore().collection('Users').doc(auth().currentUser.uid)、update({following threads:firestore.FieldValue.arrayRemove(data.docRefId)}),我就是这样使用的。但是正如您所看到的,数组不是由对象组成的。@IlllIl数组只是由对象组成的。字符串是对象,Int是对象,另一个数组是对象。在你的数组中,这个{x:“hello”,y:“please”}
是一个对象。根据你在这里和上面的评论,你似乎无法理解为什么没有从数组中删除该对象。我建议您首先尝试使用一个简单的HTML页面(没有捆绑包和模块):使用我的答案中的代码,它确实有效,并检查它在您的情况下是否有效。另一个想法是:您确定在数组中使用贴图(对象)吗?你能分享你的Firestore数据库的屏幕截图吗?嘿@IlllIl你有时间进一步查看提议的解决方案吗?@RenaudTarnec我让它工作了。我的项目指向prod env而不是dev env。我完全理解这是怎么回事,这就是为什么会有困惑。无论如何,谢谢你的帮助。