当前位置: 首页 > 知识库问答 >
问题:

如何从云函数动态创建云firestore中的集合

尉迟远
2023-03-14

我试图从云函数动态地为集合中的文档创建集合和子集合,但我遇到了以下异常**

参数“CollectionPath”必须指向集合,但为“Data/C2F7C4E84366”。您的路径不包含奇数个组件

**

原木-

错误:参数“documentpath”必须指向一个文档,但它是“exports/user343434_inbox/profile”。您的路径不包含偶数个组件。在firestore.doc(/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/index.js:282:13)在admin.firestore.doc.set.then.ws(/user_code/lib/index.js:28:53)

代码段:const p=admin.firestore().doc(导出/${userInboxCollectionName}/profile).set(reqData,{merge:false})*

我希望云函数在导出集合(已经存在)内动态创建子集合(userid_inbox),如果不存在的话,并添加配置文件文档。

共有1个答案

宰父霖
2023-03-14

Firestore是这样工作的:collection/document/subCollection/“subdocument”/等等。

你应该试试:(我在用TS)

let p = admin.firestore().collection(`exports/${userUID}/${theSubcollection}`)
    .add({ message: messageString })
    .then(ref => {
        console.log('Added document with ID: ', ref.id)
});

//let's see the estructure here:
//collection.......exports   
//document.........${userUID}
//subcollection....${theSubcollection}
//document.........ref.id
//data.............message with value messageString

使用此代码,您将在新的子集合上创建一个带有值消息的新文档。

 类似资料:
  • 我有一个困扰我好几天的问题。我正在尝试创建一个从Firestore数据库读取的Firebase云函数。 我的Firestore DB如下所示: 问题是我无法像这样列出: 如果我尝试这样做,我会得到空响应,就像我的集合中没有用户一样。 但我尝试直接访问用户它可以工作: 我的完整代码: 有人知道我做错了什么吗?非常感谢。

  • 云功能文档说 //使用Firebase管理SDK访问Firebase实时数据库。const admin=require('firebase-admin');管理初始化EAPP(); 我使用的是Cloud Firesta,而不是实时数据库。我如何访问它?

  • 我在nodeJS中有一个主要的谷歌云功能。在这个函数中,我希望通过编程在同一个项目中创建另一个云函数。这个新的云函数的代码可以存储在谷歌云存储的zip文件中。我试着跟着这里的导游走:https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions/create 我能够在测试模拟器中运行查询,

  • 我正在创建一个应用程序,它使用两步对象创建到firebase实时数据库。 我想要的是,在一个捕获onCreate事件的云函数上,如果一些规则不完整,那么create操作就会被停止。 有办法做到这一点吗?或者我需要移除节点而不是拒绝创建? 谢谢你!

  • 我试图在云函数中获得通过firebase web sdk验证的用户的UID。cloud函数由cloud FireStore的事件触发。 当登录用户正在创建/更新CAFE中的项目时,会触发此功能。身份验证由处理。安全规则仅对登录的用户启用写操作。因此该事件可以绑定到用户。 文档中有处理的示例,但在所有这些情况下,userId都是文档路径的一部分。但是在这个模型中,用户不是路径的一部分,因为一个咖啡馆