Проблемы с умлаутом / кодированием при использовании firebase на сервере и клиенте

У меня есть несколько моделей данных, общих для сервера и клиента, которые все выглядят так:

model.ts

class Model {
  constructor(
    public firebase: firebase.app.App | admin.app.App,
    public model: IModel,
    public key?: string,
  ) {
    super();
    if (key) { this.ref = this.firebase.database().ref(`someCollection/${key}`); }
      if (!this.key) {
        this.ref = this.firebase.database().ref(`someCollection`).push();
        this.key = this.ref.key;
      }
    }
  }

  async save(): Promise<boolean> {
    try {
      if (!this.model.timestamp) { this.model.timestamp = new Date().getTime(); }
      await this.ref.update(this.cleanModel);
      return true;
    } catch (err) {
      console.error(err);
      return false;
    }
  }
}

Всякий раз, когда мне нужен экземпляр модели на стороне сервера или клиента, я просто делаю это:

const model = new Model(admin, { foo: 'bar' }, 'fooKey');

Я использую пользовательский сервер expressJS для обслуживания моего приложения nextjs, которое иногда предварительно загружает некоторые данные через firebase-admin пакет. На клиенте я использую только "обычный" firebase пакет.

Иногда это кажется проблемой, когда я предварительно загружаю данные с сервера. В результате умлауты отображаются как ? вместо ü например, при сохранении данных обратно в firebase с клиента.

Я смотрю на эту проблему в течение нескольких дней и не могу найти причину для этого. Есть ли какие-то предостережения, которые я пропускаю?

0 ответов

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