Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于firestore上的对象值从数组中删除对象(贴图)_Javascript_Firebase_React Native_Google Cloud Firestore - Fatal编程技术网

Javascript 基于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"}] 我正在尝试根据特定对象的值排列或删除该对象 这是我当前的代码,尽管阅读了其他帖子说应该这样做,但

使用此线程作为参考,我想进一步了解如何从firestore中的数组中删除对象

我的firestore设置如下:

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。我完全理解这是怎么回事,这就是为什么会有困惑。无论如何,谢谢你的帮助。