Node.js 谷歌云功能用户id vs用户id
我在firestore数据库上运行google云功能。对于我的一些函数,包含导致执行的用户信息的Node.js 谷歌云功能用户id vs用户id,node.js,firebase,google-cloud-firestore,google-cloud-functions,Node.js,Firebase,Google Cloud Firestore,Google Cloud Functions,我在firestore数据库上运行google云功能。对于我的一些函数,包含导致执行的用户信息的上下文作为user\u id存储在上下文中,其他时间作为userID存储 例1: Context! { eventId: 'c5d21684-d929-4522-93b8-9defa8efc523-0', eventType: 'google.firestore.document.create', notSupported: {}, params: { date: '1567551
上下文
作为user\u id
存储在上下文中,其他时间作为userID
存储
例1:
Context! { eventId: 'c5d21684-d929-4522-93b8-9defa8efc523-0',
eventType: 'google.firestore.document.create',
notSupported: {},
params:
{ date: '1567551802.9012709',
user_id: 'xxxxxxxxxxxxxxxxx' },
resource:
{ service: 'firestore.googleapis.com',
name: 'projects/longpathxxxxxxxx' },
timestamp: '2019-09-03T23:03:23.048799Z' }
例2:
incredible { eventId: 'af75b0a0-c612-466e-9fb5-5970be1e23fa-0',
eventType: 'google.firestore.document.create',
notSupported: {},
params:
{ date: '1567552527.172058',
userID: 'yyyyyyyyyyyyy' },
resource:
{ service: 'firestore.googleapis.com',
name: 'projects/pathlongxxxxxxxxxxxxxxxxxxx' },
timestamp: '2019-09-03T23:15:27.309423Z' }
这和更新有关吗?
任何想法都会有帮助,因为据我所知,context
是由云函数创建的,我不直接控制上下文中的内容
前面唯一的代码就是这样
exports.funcName = functions.firestore.document('path').onCreate((snap, context) => {
path
是多个东西,但我不认为有确切的字符串会有什么不同。
它是
collection/document/collection/document
。我有很多函数。如果没有生成您所展示的输出的实际代码,我就猜一猜。查看实际代码很重要,因为这正是造成混淆的原因
传递给函数的context
参数将具有一个params
属性,该属性定义在文档路径中定义的通配符的名称和值。这很好:
通配符匹配从文档路径中提取并存储到context.params中。您可以定义任意数量的通配符来替换显式集合或文档ID
您的第一个输出显示包含以下内容的context.params:
params:
{ date: '1567551802.9012709',
user_id: 'xxxxxxxxxxxxxxxxx' },
这意味着您的函数在文档路径中定义了两个通配符,date
和user\u id
。它们将出现在路径中的大括号中
您的第二个输出显示:
params:
{ date: '1567552527.172058',
userID: 'yyyyyyyyyyyyy' },
这意味着函数声明了两个通配符,
date
和userID
。这些都来自于函数的定义。这并不是云计算功能在编造的东西。如果您不喜欢参数的名称不同,请更改它们以适合您希望在所有函数中看到的内容。如果没有生成您所显示的输出的实际代码,我只做一个猜测。查看实际代码很重要,因为这正是造成混淆的原因
传递给函数的context
参数将具有一个params
属性,该属性定义在文档路径中定义的通配符的名称和值。这很好:
通配符匹配从文档路径中提取并存储到context.params中。您可以定义任意数量的通配符来替换显式集合或文档ID
您的第一个输出显示包含以下内容的context.params:
params:
{ date: '1567551802.9012709',
user_id: 'xxxxxxxxxxxxxxxxx' },
这意味着您的函数在文档路径中定义了两个通配符,date
和user\u id
。它们将出现在路径中的大括号中
您的第二个输出显示:
params:
{ date: '1567552527.172058',
userID: 'yyyyyyyyyyyyy' },
这意味着函数声明了两个通配符,
date
和userID
。这些都来自于函数的定义。这并不是云计算功能在编造的东西。如果您不喜欢参数的名称不同,请更改它们以适合您希望在所有函数中看到的内容。您有将这些值写入Firestore的代码吗?如果没有看到函数的代码,就没有什么可说的了。我怀疑答案就在函数代码本身。@DougStevenson做了一个看起来毫无用处的编辑。您真的只是将“路径”传递给函数生成器吗?请显示确切的代码。我只是传递一个读取为路径的字符串。您有将这些值写入Firestore的代码吗?如果没有看到函数的代码,就没有什么好说的了。我怀疑答案就在函数代码本身。@DougStevenson做了一个看起来毫无用处的编辑。您真的只是将“路径”传递给函数生成器吗?请显示准确的代码。我只是传递一个读取为路径的字符串。