如何从python中的firebase获取事件数据?
Posted
技术标签:
【中文标题】如何从python中的firebase获取事件数据?【英文标题】:How to get event's data from firebase in python? 【发布时间】:2021-05-09 01:03:22 【问题描述】:我有一些在Firebase Analytics
部分中定义的事件,如下图所示:
问题是我不知道如何通过 API 或使用 python 包从 Firebase 导出这些事件的数据。
我还发现了 google-cloud-bigquery
包,如果我请求数据集和表,它会返回 null。
代码如下:
from google.cloud import bigquery
from datetime import datetime, timedelta
from decouple import Config
GOOGLE_APPLICATION_CREDENTIALS = Config("GOOGLE_APPLICATION_CREDENTIALS")
client = bigquery.Client()
print(client.project)
datasets = list(client.list_datasets())
print(datasets) # it prints []
更清楚的是,我要做的是对数据库执行查询,但我没有发现任何有用的链接。
table_name = 'events_' + two_days_ago
query = """
SELECT *
FROM
""".format(table_name)
print(client.query(query).result())
google.api_core.exceptions.BadRequest: 400 表名“events_20210507”缺少数据集,而请求中未设置默认数据集。
有什么方法可以访问数据集和表。 我也跟着[this tutorial],但仍然没有数据集和问题存在!
我怎样才能摆脱这些错误信息?有什么想法吗?
【问题讨论】:
【参考方案1】:将 Firebase 链接到 BigQuery
为了从 Firebase 执行查询(使用 BigQuery),需要链接它们。
按照以下步骤完成链接过程:
转到Firebase console 并选择您现有的项目。
从仪表板中选择project settings
。
-
选择
Integration
标签并确保 BigQuery 已启用。
-
如需了解更多详情和配置 BigQuery API 设置,您可以点击
manage
,如上图所示。
解决问题
google.api_core.exceptions.BadRequest: 400 表名“events_20210507”缺少数据集,而请求中未设置默认数据集。
这个错误是由于错误的查询。如前所述,有问题的查询如下:
query = """
SELECT *
FROM
""".format(table_name)
必须改成如下格式:
query = """
SELECT *
FROM 0.1.2
WHERE event_name="3";
""".format(project_name, dataset_id, table_name, event_name)
P.S 1:更多详情请关注this link。
P.S 2如果您遇到访问问题,您可以从iam service 获取 JSON 凭据。
【讨论】:
以上是关于如何从python中的firebase获取事件数据?的主要内容,如果未能解决你的问题,请参考以下文章
从 Flutter 应用程序中的 Firebase 实时数据库事件获取父节点
如何通过 BigQuery 从 Firebase 分析中获取事件转换