如何使用 emberfire 推送或更新数据?
How to push or update data with emberfire?
编辑:解决办法见最后
我的猜测是将模型(在我的例子中是 'user')放在 => 类型中,但它会说 "Assertion failed, you need to pass a model ..."
我在 app/models
中有一个 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 in app/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:" 属性,它将更新具有相同 ID 的记录(如果您指定了自己的 ID)。但是,如果您让系统为您生成 ID,我还不确定如何更新记录。我假设您必须先提取 ID。但我还没有测试过这个想法。如果有人愿意测试它,那就太棒了。
创建一个模型并运行其save
方法,而不是推送原始数据。
var user = this.store.createRecord('user', {
displayName: data.currentUser.displayName,
// set more properties here
})
user.save()
这样,Emberfire 和 Ember Data 就可以完成它们的任务并确保数据格式正确。另见
编辑:解决办法见最后
我的猜测是将模型(在我的例子中是 'user')放在 => 类型中,但它会说 "Assertion failed, you need to pass a model ..."
我在 app/models
中有一个 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 in app/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:" 属性,它将更新具有相同 ID 的记录(如果您指定了自己的 ID)。但是,如果您让系统为您生成 ID,我还不确定如何更新记录。我假设您必须先提取 ID。但我还没有测试过这个想法。如果有人愿意测试它,那就太棒了。
创建一个模型并运行其save
方法,而不是推送原始数据。
var user = this.store.createRecord('user', {
displayName: data.currentUser.displayName,
// set more properties here
})
user.save()
这样,Emberfire 和 Ember Data 就可以完成它们的任务并确保数据格式正确。另见