Недостаточно памяти cra sh с firebase angular - PullRequest
0 голосов
/ 02 августа 2020

Я работаю над приложением ioni c с Angular и Firebase. Приведенный ниже код отлично работает при запуске в браузере. Но он всегда дает сбой на устройстве Android (физическом или виртуальном)

this.subsGetAllApp = this.afDb.collection<IAppointment>('appointments', (ref) => ref.where(idType, '==', userId)).snapshotChanges().pipe(
    debounceTime(2000),
    map((docs: DocumentChangeAction<IAppointment>[]) => {
        return (docs.map((doc) => {
            return ({
                ...doc.payload.doc.data() as IAppointment,
                id: doc.payload.doc.id
            });
        }));
    })
).subscribe((appointments) => {
    this.store.dispatch(new GetAllAppointment(appointments));
});

Этот код запускается при инициализации приложения. Я попытался добавить в запрос больше предложений where, чтобы получить меньше данных. Это сработало, что означает, что где-то есть проблема с памятью, которая возникает только при определенном количестве данных.

Журнал ошибок из logcat:

2020-08-04 23:25:38.360 6236-6236/com.osteoapp.app E/chromium: [ERROR:aw_browser_terminator.cc(113)] Renderer process (6408) crash detected (code 5).
2020-08-04 23:25:38.379 6236-6236/com.osteoapp.app A/chromium: [FATAL:crashpad_client_linux.cc(404)] Render process (6408)'s crash wasn't handled by all associated  webviews, triggering application crash.
2020-08-04 23:25:38.802 6236-6236/com.osteoapp.app A/libc: Fatal signal 4 (SIGILL), code 2 (ILL_ILLOPN), fault addr 0xd43dfc30 in tid 6236 (om.osteoapp.app), pid 6236 (om.osteoapp.app)
enter code here

1 Ответ

0 голосов
/ 07 августа 2020

Вы получаете эту ошибку из-за того, что памяти достаточно для всех ваших данных.

Пожалуйста, попробуйте увеличить объем памяти. Вы можете сделать это, изменив node_modules / .bin / ioni c -app-scripts.cmd, добавив следующее:


@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\@ionic\app-scripts\bin\ionic-app-scripts.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node --max_old_space_size=4096  "%~dp0\..\@ionic\app-scripts\bin\ionic-app-scripts.js" %*
)

Если вы находитесь в Linux, вам нужно будет добавить следующее:

#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

if [ -x "$basedir/node" ]; then
  "$basedir/node --max_old_space_size=4096"  "$basedir/../@ionic/app-scripts/bin/ionic-app-scripts.js" "$@"
  ret=$?
else
  node --max_old_space_size=4096 "$basedir/../@ionic/app-scripts/bin/ionic-app-scripts.js" "$@"
  ret=$?
fi
exit $ret

Вы также можете ознакомиться с проблемой GitHub , где указано предыдущее.

Если вы все еще меняете предыдущее, вы получаете выход из проблема с памятью, это связано с тем, что ваше устройство ограничено аппаратными средствами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...