-
|
I have a python function that runs on firestore document changes. How do I emulate and test integration with storage locally? |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments
-
|
Install Install the firestore emulator: Write a basic "background" function: def hello(data, context):
print(data, context)Install the Functions Framework: In one terminal, start the Functions Framework (by default this will be on In a second terminal, start the emulator (on a different port, Register a trigger with the firestore emulator: Install the Firestore client library (using Python here but it can be any client library): Write a script to trigger a write: from google.cloud import firestore
client = firestore.Client(project="my-project")
client.collection("my-collection").add(document_data={"foo": "bar"})In a third terminal, trigger a write: Observe the function being triggered by the emulator in the first terminal: |
Beta Was this translation helpful? Give feedback.
-
|
This is such a detailed reply. Thank you very much @di ! :) |
Beta Was this translation helpful? Give feedback.
-
|
I have 2 more questions.
|
Beta Was this translation helpful? Give feedback.
-
|
Happy to help!
If you mean Cloud Storage for Firebase, correct. From https://firebase.google.com/docs/emulator-suite#feature-matrix:
There's a feature request for this here: firebase/firebase-tools#1738
I'm not very familiar with the firebase emulator, but it seems like it's not possible to start the emulator via This might be a good question for the |
Beta Was this translation helpful? Give feedback.
-
|
Hi @di I followed your step-by-step instructions, but it is not working. When I checked the firebase-debug.log I find these logs: [debug] [2021-03-08T23:18:40.086Z] Accepted request POST /functions/projects/{project Id}/triggers/Test --> Test {"metadata":{"emulator":{"name":"functions"},"message":"Accepted request POST /functions/projects/{project id}/triggers/Test --> Test"}} I think I am missing something about registering the trigger "Test" somewhere, the one is referring to in the PUT endpoint: Is there any configuration missing? Thanks in advance! |
Beta Was this translation helpful? Give feedback.
-
|
@lfpazmino Sorry, I can't really help with the Firebase emulator here. This might be a good issue for the https://github.com/firebase/firebase-tools/ repo or a question for the |
Beta Was this translation helpful? Give feedback.
-
|
In case someone needs firestore emulator as docker container to use for testing: |
Beta Was this translation helpful? Give feedback.
Install
firebase-tools:Install the firestore emulator:
Write a basic "background" function:
Install the Functions Framework:
In one terminal, start the Functions Framework (by default this will be on
localhost:8080):In a second terminal, start the emulator (on a different port,
localhost:8081) and tell it which host/port to use for the functions emulator: