You could try ESP32 WROVER board, which has additional PSRAM.
Right now it supports 320kb, and could be expanded.
See espruinoTask(void *data) in https://github.com/espruino/Espruino/blob/master/targets/esp32/main.c
Each jsVar takes 16 bytes, so 20000 jsVars are 320kb
To put water into the wine, I would still expect firebase is way too large for these small chips.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
You could try ESP32 WROVER board, which has additional PSRAM.
Right now it supports 320kb, and could be expanded.
See espruinoTask(void *data) in https://github.com/espruino/Espruino/blob/master/targets/esp32/main.c
Each jsVar takes 16 bytes, so 20000 jsVars are 320kb
To put water into the wine, I would still expect firebase is way too large for these small chips.