2017-02-02 4 views
1

Я экспериментирую с очередью firebase. Я видел вариант для дезинфекции. Это описано в доке, какКаков предел использования очереди firebase?

дезинфицировать - определяет, будет ли объект данных передаются функции обработки является продезинфицировать внутренние ключи, зарезервированные для использования в очереди. По умолчанию true.

Что это значит?

Я получаю сообщение об ошибке для не уточняя { sanitize : false }

sanitize error

ответ

2

Когда опция sanitize установлена, дезинфицирует очередь (или чистят) материалы, представленные на функцию обработки так, что она напоминает, что, когда исходного клиента, помещенного в очередь, и не содержит никаких ключей, добавленных в реализацию самой очереди.

Если, однако, вы полагаетесь на ключ (обычно ключи, начинающиеся с символа подчеркивания, например, _id), который добавляется в очередь, а не оригинальный клиент, вам необходимо установить sanitize: false так что эти ключи будут возвращены на ваш и они не undefined.

Вы можете четко видеть разницу с простой функцией обработки, которая просто выполняет команду console.log(data).

Быстрое примечание о том, почему эти ключи удаляются по умолчанию: чтения или записи непосредственно на месте (как это выглядит, как вы, возможно, делаете, переходя undefined в клиентский SDK child() метод вместо data._id) является как правило, плохая идея из самого рабочего, так как непосредственно выполняемые записи не охраняются обширной логикой транзакций в очереди, чтобы предотвратить условия гонки. Если вы можете выделить работу для ввода ввода из поля data и возврата выходов к функции resolve(), скорее всего, вам будет лучше масштабировать вашу очередь.

+0

У вас есть хороший образец кода для справки? Я нахожу, что код примера документации для сообщения в чате трудно следовать. –

Смежные вопросы