Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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前端中使用Firebase Firestore.push()方法_Javascript_List_Firebase_Google Cloud Firestore - Fatal编程技术网

如何在Javascript前端中使用Firebase Firestore.push()方法

如何在Javascript前端中使用Firebase Firestore.push()方法,javascript,list,firebase,google-cloud-firestore,Javascript,List,Firebase,Google Cloud Firestore,所以,让我先说谷歌的Firebase文档很可怕。当用户向电子商务站点上的购物车添加项目时,我试图将子值附加到Firestore db中文档上存储的列表中。有史以来(或应该是)最简单的事情。。所有文档都说要使用.push(),但没有一个可操作的示例说明如何实现它。这还不足以让我理解如何使用它: // Create a new post reference with an auto-generated id var newPostRef = postListRef.push(); newPostRe

所以,让我先说谷歌的Firebase文档很可怕。当用户向电子商务站点上的购物车添加项目时,我试图将子值附加到Firestore db中文档上存储的列表中。有史以来(或应该是)最简单的事情。。所有文档都说要使用.push(),但没有一个可操作的示例说明如何实现它。这还不足以让我理解如何使用它:

// Create a new post reference with an auto-generated id
var newPostRef = postListRef.push();
newPostRef.set({
    // ...
});
postListRef来自何处,如何实例化使用.push()的引用?在过去的3天里,我一直在断断续续地猜测如何使用该函数,从获取数据库引用到添加值。下面是我尝试使用它的两种方法。这是一个愚蠢而简单的问题,它让我发疯,在几个小时的谷歌搜索之后,我在任何地方都找不到一个完整的例子。请提供一个完整的解释和示例代码,在一个普通的javascript前端脚本中如何使用firestore实现.push(),这对您来说可能是一个不必要的细节级别!如果您能解释如何从列表中删除单个项目,则可获得额外积分

文档链接: ,

无论我如何尝试使用它,我都会不断得到错误的变体:.push()不是一个类似以下的函数:

product-single:126 Uncaught TypeError: firebase.firestore(...).collection(...).doc(...).push is not a function
    at addItemToCart (product-single:126)
push()
方法是Firebase实时数据库API的一部分,而不是Firestore API的一部分。虽然这两个数据库都是Firebase的一部分,但它们都有自己的API,并且不兼容

要实现此目的,您可以执行以下操作:

var testRef = firebase.firestore().collection('Carts').doc(userUid);
testRef.set({
  productName: productName,
  productId: productId 
});
push()
方法是Firebase实时数据库API的一部分,而不是Firestore API的一部分。虽然这两个数据库都是Firebase的一部分,但它们都有自己的API,并且不兼容

要实现此目的,您可以执行以下操作:

var testRef = firebase.firestore().collection('Carts').doc(userUid);
testRef.set({
  productName: productName,
  productId: productId 
});

我看我看错了文件。。哎呀。但愿它更清楚。必须使用merge with firestore来实现所需的行为:var setWithMerge=cityRef.set({capital:true},{merge:true})^这相当于RTDB的
update()
方法,但是。。。如果您想将新字段与任何现有值合并到文档中,那就是最好的方法。我发现我查看的文档是错误的。。哎呀。但愿它更清楚。必须使用merge with firestore来实现所需的行为:var setWithMerge=cityRef.set({capital:true},{merge:true})^这相当于RTDB的
update()
方法,但是。。。如果您想将新字段与任何现有值合并到文档中,这将是一种方法。