From 686c8347486c11607a0f8fe467e412be4974d83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Fri, 1 Mar 2024 15:36:32 +0300 Subject: [PATCH] feat(firebase): add find cloud firestore document action --- .../find-cloud-firestore-document/index.js | 53 +++++++++++++++++++ .../src/apps/firebase/actions/index.js | 3 +- packages/docs/pages/apps/firebase/actions.md | 2 + 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 packages/backend/src/apps/firebase/actions/find-cloud-firestore-document/index.js diff --git a/packages/backend/src/apps/firebase/actions/find-cloud-firestore-document/index.js b/packages/backend/src/apps/firebase/actions/find-cloud-firestore-document/index.js new file mode 100644 index 00000000..21739d79 --- /dev/null +++ b/packages/backend/src/apps/firebase/actions/find-cloud-firestore-document/index.js @@ -0,0 +1,53 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Find Cloud Firestore document', + key: 'findCloudFirestoreDocument', + description: 'Finds a document within a collection.', + arguments: [ + { + label: 'Collection', + key: 'collectionId', + type: 'dropdown', + required: true, + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listFirestoreCollections', + }, + ], + }, + }, + { + label: 'Document ID', + key: 'documentId', + type: 'string', + required: true, + description: '', + variables: true, + }, + ], + + async run($) { + const projectId = $.auth.data.projectId; + const { collectionId, documentId } = $.step.parameters; + + const { data } = await $.http.get( + `/v1/projects/${projectId}/databases/(default)/documents/${collectionId}/${documentId}`, + { + additionalProperties: { + setFirestoreBaseUrl: true, + }, + } + ); + + $.setActionItem({ + raw: data, + }); + }, +}); diff --git a/packages/backend/src/apps/firebase/actions/index.js b/packages/backend/src/apps/firebase/actions/index.js index dfe900d2..db60e2f2 100644 --- a/packages/backend/src/apps/firebase/actions/index.js +++ b/packages/backend/src/apps/firebase/actions/index.js @@ -1,3 +1,4 @@ import createCloudFirestoreDocument from './create-cloud-firestore-document/index.js'; +import findCloudFirestoreDocument from './find-cloud-firestore-document/index.js'; -export default [createCloudFirestoreDocument]; +export default [createCloudFirestoreDocument, findCloudFirestoreDocument]; diff --git a/packages/docs/pages/apps/firebase/actions.md b/packages/docs/pages/apps/firebase/actions.md index 37ad1b2d..8cd921d4 100644 --- a/packages/docs/pages/apps/firebase/actions.md +++ b/packages/docs/pages/apps/firebase/actions.md @@ -3,6 +3,8 @@ favicon: /favicons/firebase.svg items: - name: Create Cloud Firestore document desc: Creates a new document within a Cloud Firestore collection. + - name: Find Cloud Firestore document + desc: Finds a document within a collection. ---