Проблемы с умлаутом / кодированием при использовании 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 с клиента.
Я смотрю на эту проблему в течение нескольких дней и не могу найти причину для этого. Есть ли какие-то предостережения, которые я пропускаю?