如何从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获取事件数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase 云函数中的通配符获取数据

从 Flutter 应用程序中的 Firebase 实时数据库事件获取父节点

如何通过 BigQuery 从 Firebase 分析中获取事件转换

从 Firebase 中的特定 ID 列表中检索数据,关注用户并仅获取他们的帖子

Flutter:从Firebase中的两个集合中获取数据

如何在不监听事件的情况下从 firebase 数据库中检索数据 [重复]