【问题标题】:How to export the data returned from snap.data() into a GCP bucket?如何将 snap.data() 返回的数据导出到 GCP 存储桶中?
【发布时间】:2020-10-21 21:58:56
【问题描述】:

我正在尝试仅将新文档添加到我的 Firestore 子集合中的 Firestore 导出:reviews。每当我创建新文档时,下面的 .onCreate 方法都会记录新字段。但是,我只想将新文档导出到我的 GCP 存储桶,以便稍后将其导入 BigQuery 表。知道如何实现这一目标吗?

云函数代码:

const functions = require('firebase-functions');
    
    const admin = require('firebase-admin');
    
    exports.createUser = functions.firestore
        .document('vision_data/{id}/reviews/{reviewsId}')
        .onCreate((snap, context) => {
      
        console.log(snap.data());
        
        return null;
        
        });

【问题讨论】:

    标签: javascript google-cloud-platform google-cloud-firestore google-cloud-functions


    【解决方案1】:

    您可以先export the specific collection to Cloud Storage,然后再load the data in BigQuery。请注意,您只需要运行如下命令:

    gcloud firestore export gs://[BUCKET_NAME] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]
    

    或者您可以将存储在snap.data() 中的数据写入一个文件,然后使用客户端库将数据上传到云存储using the methods describe here

    【讨论】:

    • 我对这种环境非常陌生,并且在编写云功能方面非常挣扎。你能给我一个关于如何将 snap.data() 写入文件的例子吗? @丹尼尔奥坎多
    • snap.data() 为我提供了新文档中的字段及其值。但是,我想导出一个 export.metadata 类型的文件(当我们执行 gcloud firestore export 命令时生成的文件)。 gcloud firestore 导出完全导出我的收藏,但我想每天进行增量导出。我如何做到这一点?可以以某种方式修改 gcloud firestore 导出命令以仅导出添加到我的集合中的新文档吗? @丹尼尔奥坎多
    猜你喜欢
    • 2020-10-18
    • 2020-01-10
    • 2020-11-09
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    相关资源
    最近更新 更多