Проблема с кодировкой JSON при отправке в firebase из js

Я сохраняю данные в firebase RTDB через JS SDK (6.3.1), используя:

 firebase.initializeApp(firebaseConfig);
  var data = {
      "name":"Česká republika"
  };
  var key = firebase.database().ref().child('areas').push(data).key;

Есть проблема со специальными символами, когда я просматриваю их в консоли Firebase. Это страшно, но firebase ИНОГДА правильно понимает символы, а иногда нет. Следующий вывод был достигнут только путем обновления скрипта (файл скрипта закодирован в UTF-8):

Проблема с кодировкой JSON при отправке в firebase из js

Также не помогает отправка символов в виде \u00e9. Их тоже принимают иногда хорошо, иногда нет. Спасибо за ваши идеи!

Вы уверены, что ваш локальный файл имеет правильную кодировку? Попробуйте преобразовать его через Notepad++, IntelliJ или любой другой IDE/редактор, который может преобразовать кодировку файла.

MauriceNino 24.07.2019 11:06

Файл в UTF-8 без спецификации, конвертирован и настроен Notepad++. Такое же поведение, когда я конвертирую его в UTF-8 с помощью спецификации и устанавливаю для него формат.

Fanky 24.07.2019 11:09

Пробовали ли вы использовать другой фреймворк?

MauriceNino 24.07.2019 11:13

Что вы подразумеваете под фреймворком? Я использую сценарии JS SDK (gstatic.com/firebasejs/6.3.0/firebase-app.js и т. д.), предоставленные firebase для веб-приложений. Просто в тестовом файле.

Fanky 24.07.2019 11:14

Протестировано сейчас с 6.3.1, те же результаты

Fanky 24.07.2019 11:21

Да, но, насколько я знаю, есть и другие фреймворки Firebase. Может быть, один из них предлагает варианты правильного кодирования данных. Или вы можете попробовать этот ответ, может быть, он поможет: stackoverflow.com/a/19148116/9150652

MauriceNino 24.07.2019 12:19

Я не могу воспроизвести проблему: jsbin.com/yigavev/edit?js,консоль. Не могли бы вы воспроизвести проблему в jsbin (или на подобном сайте), чтобы я мог увидеть ее в действии?

Frank van Puffelen 24.07.2019 15:56

спасибо за скрипку! Я тестировал сейчас в одном и том же скрипте много раз, и проблема больше не существует. Странный. Я пользовался 6.3.1 и 6.3.0 и тогда и сейчас.

Fanky 29.07.2019 15:11

У меня похожая проблема, но это происходит только при включенном longPolling. Вы можете сделать это, используя firebase.database.INTERNAL.forceLongPolling().

Glauber 30.07.2019 20:10

Мне удалось воспроизвести это: jsbin.com/nasuwem/edit?js,консоль, и похоже, что вы также зарегистрировали здесь ошибку: github.com/firebase/firebase-js-sdk/issues/2035. Давайте проследим за этим последним.

Frank van Puffelen 31.07.2019 07:16

@Frank van Puffelen, я только что воспроизвел проблему в вашем jsbin. Возможно, это зависит от времени его тестирования / подключения, в прошлый раз я действительно проверял много раз, и все было правильно, но это было на другом Wi-Fi.

Fanky 07.08.2019 16:33

Я все еще могу воспроизвести эту проблему с версиями SDK 6.0–6.3.3. Но это было исправлено в 6.3.4 (я только что проверил это в jsbin, которым я поделился ранее), поэтому я бы рекомендовал перейти на него.

Frank van Puffelen 07.08.2019 17:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
12
387
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это было проблемой в нижестоящей зависимости (минификатор JavaScript), что вызывало проблемы с кодированием в некоторых крайних случаях.

Проблема была решена в версия 6.3.4 JavaScript SDK, поэтому я рекомендую обновиться до последней версии, если вы столкнулись с этой проблемой.

Другие вопросы по теме