firebase / firebase-admin-python

Firebase Admin Python SDK
https://firebase.google.com/docs/admin/setup
Apache License 2.0
988 stars 300 forks source link

[FR] Add Support for Pyodide by providing a wheel with binaries built for Emscripten. #771

Open kiebak3r opened 4 months ago

kiebak3r commented 4 months ago

Is your feature request related to a problem? Please describe. When using the Library Flet, It uses Pyodide to create static web pages using WASM. https://flet.dev/docs/guides/python/packaging-app-for-distribution#flet-build-web image

Currently i cannot use firebase-admin

Describe the solution you'd like I would like the .whl to include binaries built for Emscripten so it can be compatible with pyodide (WASM)

Describe alternatives you've considered Currently the only work around is to use SQLite3 which is far from ideal as firebase is elite.

google-oss-bot commented 4 months ago

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

kiebak3r commented 4 months ago

Seems to be an issue with install dependencies not having a python wheel "google-crc32c"

Uncaught (in promise) PythonError: Traceback (most recent call last): File "/lib/python311.zip/_pyodide/_base.py", line 573, in eval_code_async await CodeRunner( File "/lib/python311.zip/_pyodide/_base.py", line 395, in run_async await coroutine File "", line 4, in File "/lib/python3.11/site-packages/micropip/_commands/install.py", line 146, in install raise ValueError( ValueError: Can't find a pure Python 3 wheel for: 'google-crc32c<2.0dev,>=1.0', 'grpcio<2.0dev,>=1.49.1; python_version >= "3.11" and extra == "grpc"', 'grpcio<2.0dev,>=1.33.2; extra == "grpc"', 'google-crc32c<2.0dev,>=1.0', 'grpcio>=1.60.1', 'grpcio>=1.60.1' See: https://pyodide.org/en/stable/usage/faq.html#why-can-t-micropip-find-a-pure-python-wheel-for-a-package

at new_error (pyodide.asm.js:9:10014)
at pyodide.asm.wasm:0x158e62
at pyodide.asm.wasm:0x15ff9e
at _PyEM_TrampolineCall_JS (pyodide.asm.js:9:120223)
at pyodide.asm.wasm:0x1a3494
at pyodide.asm.wasm:0x28a2bd
at pyodide.asm.wasm:0x1e431e
at pyodide.asm.wasm:0x1a397d
at pyodide.asm.wasm:0x1a3c3e
at pyodide.asm.wasm:0x1a3ce0
at pyodide.asm.wasm:0x2689a4
at pyodide.asm.wasm:0x26e800
at pyodide.asm.wasm:0x1a3e08
at pyodide.asm.wasm:0x1a3a98
at pyodide.asm.wasm:0x15f76b
at Module.callPyObjectKwargs (pyodide.asm.js:9:64297)
at Module.callPyObject (pyodide.asm.js:9:65365)
at wrapper (pyodide.asm.js:9:32855)