Skip to content

🐛 [fs-bq-import-collection] replaces Firestore database ID with (default) in document_name when importing to BigQuery #2563

@ne2se

Description

@ne2se

[READ] Step 1: Are you in the right place?

Issues filed here should be about bugs for a specific extension in this repository.
If you have a general question, need help debugging, or fall into some
other category use one of these other channels:

  • For general technical questions, post a question on StackOverflow
    with the firebase tag.
  • For general Firebase discussion, use the firebase-talk
    google group.
  • To file a bug against the Firebase Extensions platform, or for an issue affecting multiple extensions, please reach out to
    Firebase support directly.

[REQUIRED] Step 2: Describe your configuration

  • Extension name: _ fs-bq-import-collection
  • Extension version: _ 0.1.27
  • Configuration values:
    --project=my-project-001
    --big-query-project=my-project-001
    --source-collection-path=my_collection
    --query-collection-group=false
    --dataset=my_bq_database
    --dataset-location=europe-west1
    --table-name-prefix=my_collection
    --firestore-instance-id=my-firestore-database

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

When importing from a non-default Firestore database, the document_name stored in BigQuery uses databases/(default) instead of the provided non-default database ID.

How to reproduce:

In a project with multiple Firestore databases, ensure there is a non-default database (e.g., my-firestore-database) and that it contains documents in the my_collection collection.

Run: npx @firebaseextensions/fs-bq-import-collection
--non-interactive
--project=my-project-001
--big-query-project=my-project-001
--source-collection-path=my_collection
--query-collection-group=false
--dataset=my_bq_database
--dataset-location=europe-west1
--table-name-prefix=my_collection
--firestore-instance-id=my-firestore-database

Inspect the imported rows in BigQuery (dataset my_bq_database). The document_name field shows the database segment as (default) instead of the specified my-firestore-database.
Example:

Expected document_name: projects/my-project-001/databases/my-firestore-database/documents/my_collection/00778889
Actual document_name: projects/my-project-001/databases/(default)/documents/my_collection/00778889

Expected result

document_name should include the targeted non-default Firestore database ID provided via --firestore-instance-id: projects/my-project-001/databases/my-firestore-database/documents/my_collection/00778889

Actual result

document_name contains (default), ignoring the provided non-default database ID: projects/my-project-001/databases/(default)/documents/my_collection/00778889

Here is an image comparing the result of the script (operation=import) and the result of an automatic update from the extension https://extensions.dev/extensions/firebase/firestore-bigquery-export. As you can see in cyan, it’s my actual collection name; in the import one, it shows (default).

Image

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions