firebase-functions-python icon indicating copy to clipboard operation
firebase-functions-python copied to clipboard

Error in firebase_functions/private/util.py processing event time attribute

Open ekalosak opened this issue 1 year ago • 14 comments

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).

ekalosak avatar Sep 16 '23 13:09 ekalosak

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.

ekalosak avatar Sep 16 '23 13:09 ekalosak

Thanks for sharing. npm install -g [email protected] Fixed the issue for me too.

mitch-36 avatar Sep 24 '23 05:09 mitch-36

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.

joaqo avatar Sep 25 '23 16:09 joaqo

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.

brianellin avatar Sep 29 '23 05:09 brianellin

Snce this issue has been fixed, I'll close this issue. Please comment if you disagree with my decision

exaby73 avatar Oct 09 '23 06:10 exaby73

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.

jackall3n avatar Oct 10 '23 12:10 jackall3n

Yeah, this is the 2nd recent issue @exaby73 has closed that hasn't actually been fixed.

joaqo avatar Oct 10 '23 16:10 joaqo

@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

exaby73 avatar Oct 11 '23 06:10 exaby73

+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.

antopolskiy avatar Oct 12 '23 08:10 antopolskiy

+1 this issue still exists

zsais avatar Oct 18 '23 20:10 zsais

@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

exaby73 avatar Oct 19 '23 07:10 exaby73

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

exaby73 avatar Jan 15 '24 13:01 exaby73

I just tried it with firebase-tools v13.3.0 and it still fails.

antopolskiy avatar Feb 22 '24 08:02 antopolskiy

Hey @antopolskiy if you can still reproduce it, could you provide me with your stack trace?

exaby73 avatar Mar 08 '24 04:03 exaby73