firebase-functions-python
firebase-functions-python copied to clipboard
Error in firebase_functions/private/util.py processing event time attribute
After updating firebase-tools, using the functions emulator, any time an @firestore_fn
-decorated function is executed, I get this error:
...
> File "/.../venv/lib/python3.11/site-packages/firebase_functions/firestore_fn.py", line 115, in _firestore_endpoint_handler
> is_nanoseconds = _util.is_precision_timestamp(time)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/.../venv/lib/python3.11/site-packages/firebase_functions/private/util.py", line 333, in is_precision_timestamp
> _, s_fraction = time.split(".")
> ^^^^^^^^^^^^^
> ValueError: not enough values to unpack (expected 2, got 1)
The relevant code includes this block from firebase_fn.py and this block from private/util.py.
After upgrading to the latest firebase tools npm install -g firebase-tools
to v12.5.4
, the CloudEvent event's time attribute has this iso format: 2023-09-16T13:32:06Z
extracted by adding a print() call to the firebase_functions' site-package source.
So, that unprotected time.split('.')
call isn't accounting for the ostensible change to the time attribute's format.
I'm using Python 3.11.4 on macOS 12.6 with firebase-functions v0.1.1 (latest).
It's worth noting that downgrading firebase-tools
from the latest v12.5.4
to the previous v12.5.3
fixes the issue.
tl;dr fix this bug by running: npm install -g [email protected]
Firebase staff - please consider adding an integration test that covers @firestore_fn
-triggered functions to the firebase-tools CI.
Thanks for sharing.
npm install -g [email protected]
Fixed the issue for me too.
I have the same issue, but running npm install -g [email protected]
didn't fix it for me.
I followed the official tutorial to the letter and encountered this issue, so it seems to be quite a big oversight from the firebase team.
EDIT: I had installed firebase tools from the bash script, had to uninstall it, install this specific npm version, and the issue is now fixed. Official tutorial is still broken though.
Same issue for me using the latest firebase.tools. Using 12.5.3 via npm for now until the issue is resolved.
Also, I'd recommend some better docs on "installing" a specific version binary from the firebase.tools website.
Snce this issue has been fixed, I'll close this issue. Please comment if you disagree with my decision
Snce this issue has been fixed, I'll close this issue. Please comment if you disagree with my decision
This is still an issue in the latest version, this issue shouldn't be closed.
Yeah, this is the 2nd recent issue @exaby73 has closed that hasn't actually been fixed.
@jackall3n @joaqo Sorry about this. I realise that the workaround was downgrading the firebase_tools version. Correct me if I am wrong. I'll reopen this issue and investigate further
+1 this issue still happens and if not for this thread it would have been very difficult for me to resolve. I spent ~1 hour fruitlessly playing around with versions of various components before finding this. npm install -g [email protected]
works.
+1 this issue still exists
@zsais @joaqo Could you check this issue against the main branch by change the dependency in your requirements.txt
?
Change firebase_functions=<version>
to git+https://github.com/firebase/firebase-functions-python.git@main#egg=firebase-functions
Could you please check with the latest version 0.2.0
and confirm if this issue is fixed on your side? There was a PR that was merged but not released earlier which may have fixed this issue
I just tried it with firebase-tools v13.3.0 and it still fails.
Hey @antopolskiy if you can still reproduce it, could you provide me with your stack trace?