这是由于函数依赖项中的代码存在问题。代码写在 snapshot.ts 中,它尝试使用 table 和 datasetid 创建视图。与此同时,它还试图从 env 中选择项目 id。 process.env.PROJECT_ID。我的建议是将他设置为属性。这是代码:
return format(
` -- Retrieves the latest document change events for all live documents.
-- timestamp: The Firestore timestamp at which the event took place.
-- operation: One of INSERT, UPDATE, DELETE, IMPORT.
-- event_id: The id of the event that triggered the cloud function mirrored the event.
-- data: A raw JSON payload of the current state of the document.
-- document_id: The document id as defined in the Firestore database
SELECT
document_name,
document_id${groupByColumns.length > 0 ? "," : ""}
${groupByColumns.join(",")}
FROM (
SELECT
document_name,
document_id,
${groupByColumns
.map(
(columnName) =>
`FIRST_VALUE(${columnName})
OVER(PARTITION BY document_name ORDER BY ${timestampColumnName} DESC)
AS ${columnName}`,
)
.join(",")}${groupByColumns.length > 0 ? "," : ""}
FIRST_VALUE(operation)
OVER(PARTITION BY document_name ORDER BY ${timestampColumnName} DESC) = "DELETE"
AS is_deleted
FROM \`${process.env.PROJECT_ID}.${datasetId}.${tableName}\`
ORDER BY document_name, ${timestampColumnName} DESC
)
WHERE NOT is_deleted
GROUP BY document_name, document_id${
groupByColumns.length > 0 ? ", " : ""
}${groupByColumns.join(",")}`,