【发布时间】:2019-10-18 07:11:28
【问题描述】:
我正在尝试使用 Firebase 函数对 BigQuery 进行查询。当我测试在本地或在 BigQuery 控制台中运行该函数的查询时,它会正确返回。但是当我将该函数部署到 Firebase 并发出请求时,它返回空:
[ [] ].
我使用的代码是:
functions.https.onRequest((req, res) => {
const { id } = req.body;
const query = "SELECT (CASE WHEN COUNTIF((event_timestamp / 1000) <= (UNIX_MILLIS(CURRENT_TIMESTAMP()) - 172800000) OR event_name = 'EVENT_A' OR event_name = 'EVENT_B' ) >= 1 THEN TRUE ELSE FALSE END) UserIsMature FROM `analytics_table` WHERE user_id='" + id + "AND event_name = 'EVENT_A' OR event_name = 'EVENT_B' OR event_name = 'EVENT_C'"
bigQuery.query(query).then(result => response.send(result))
});
例如,正在运行的查询是:
SELECT (CASE WHEN COUNTIF((event_timestamp / 1000) <= (UNIX_MILLIS(CURRENT_TIMESTAMP()) - 172800000) OR event_name = 'EVENT_A' OR event_name = 'EVENT_B' ) >= 1 THEN TRUE ELSE FALSE END) UserIsMature FROM `analytics_table` WHERE user_id='EBtcJEsCHXN' AND event_name = 'EVENT_A' OR event_name = 'EVENT_B' OR event_name = 'EVENT_C'
我在代码中看不到任何问题,尤其是因为我有另一个函数使用相同的代码,但查询不同,它按预期工作。
知道为什么它不起作用吗?
【问题讨论】:
-
您声明了
id,但从不使用它。这是你的意图吗? -
@ThiagoNascimento。 . .通过打印出
query来编辑查询并显示实际正在运行的查询。 -
完成,刚刚使用查询进行了编辑
标签: sql firebase google-bigquery google-cloud-functions