Как отправить или обновить данные с помощью 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 могут делать свое дело и обеспечивать правильное форматирование данных. Также см