Как отправить или обновить данные с помощью emberfire?

Изменить: посмотреть решение в конце

Мое предположение состояло в том, чтобы поместить модель (в моем случае 'user') в тип =>, но тогда он скажет:"Утверждение не удалось, вам нужно передать модель..."

У меня есть user.js в приложении / модели

вот выдержка из роутера (после функции входа в систему)

self.store.push({
                data: {
                    id: data.currentUser.uid,
                    type: 'user',
                    attributes: {
                        displayName: data.currentUser.displayName,
                        email: data.currentUser.email,
                        photoURL: data.currentUser.photoURL,
                        firebaseUID: data.currentUser.uid,
                        rank: "scorer",
                        status: "active",
                        loginCount: 0,
                        provider: provider,
                        timestamp: new Date().getTime()
                    }
                }
            });

и вот моя модель (user.js в приложении / models)

import DS from 'ember-data';

export default DS.Model.extend({
  displayName: DS.attr('string'),
  email: DS.attr('string'),
  photoURL: DS.attr('string'),
  firebaseUID: DS.attr('string'),
  rank: DS.attr('string'),
  status: DS.attr('string'),
  loginCount: DS.attr('string'),
  provider: DS.attr('string'),
  timestamp: DS.attr('number')
});

Пожалуйста, помогите:(спасибо всем заранее!

Правило => Решение, которое сработало: если вы выполните createRecord и сопоставите атрибут "id:", он обновит запись с тем же идентификатором (будет работать, если вы указали свой собственный идентификатор). Однако я пока не уверен, как обновить запись, если вы позволите системе сгенерировать для вас идентификатор. Я предполагаю, что вам придется сначала извлечь удостоверение личности. Но я еще не проверил эту идею. Если кто-то будет так любезен проверить это, это будет здорово.

1 ответ

Решение

Вместо того, чтобы выдвигать необработанные данные, создайте модель и запустите ее save метод.

var user = this.store.createRecord('user', {
    displayName: data.currentUser.displayName,
    // set more properties here
})
user.save()

Таким образом, Emberfire и Ember Data могут делать свое дело и обеспечивать правильное форматирование данных. Также см

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