Firebase 实现数据库-无法读取属性';初始化关系';未定义成员js的定义
这是适配器 在Ember数据中,适配器确定如何将数据持久化到后端数据存储。诸如后端主机、URL格式和用于与RESTAPI对话的头文件等都可以在适配器中配置Firebase 实现数据库-无法读取属性';初始化关系';未定义成员js的定义,firebase,firebase-realtime-database,ember.js,emberfire,Firebase,Firebase Realtime Database,Ember.js,Emberfire,这是适配器 在Ember数据中,适配器确定如何将数据持久化到后端数据存储。诸如后端主机、URL格式和用于与RESTAPI对话的头文件等都可以在适配器中配置 /*适配器/application.js*/ 从“emberfire/adapters/firebase”导入FirebaseAdapter; 导出默认FirebaseAdapter.extend({}); 控制器是可路由对象,它从路由接收单个属性。。这是控制器 /*控制器/cars.js*/ 从“@ember/Controller”导入控
/*适配器/application.js*/
从“emberfire/adapters/firebase”导入FirebaseAdapter;
导出默认FirebaseAdapter.extend({});
控制器是可路由对象,它从路由接收单个属性。。这是控制器
/*控制器/cars.js*/
从“@ember/Controller”导入控制器;
导出默认控制器.extend({
行动:{
删除车辆(id){
这个。获取(“存储”)
.findRecord(“car”,id,{reload:true})
.然后(汽车=>{
car.record();
car.save();
//自我运输路线(“汽车”);
});
}
}
});
/*控制器/cars/edit.js*/
从“@ember/Controller”导入控制器;
导出默认控制器.extend({
行动:{
编辑车:功能(id){
var self=这个;
var make=this.get(“model.make”);
var模型=this.get(“model.model”);
var year=此.get(“model.year”);
this.store.findRecord(“car”,id)。然后(function(car){
汽车。设置(“制造”,制造);
车。集(“模型”,模型);
车组(“年”,年);
car.save();
自我运输路线(“汽车”);
});
}
}
});
/*控制器/cars/new.js*/
从“@ember/Controller”导入控制器;
导出默认控制器.extend({
行动:{
addCar:function(){
var self=这个;
var rand=Math.floor(Math.random()*10000+1);
var newCar=this.store.createRecord(“car”{
id:rand,
制作:这个。获取(“卡马克”),
型号:this.get(“carModel”),
年份:本。获取(“carYear”)
});
newCar.save();
自我运输路线(“汽车”);
}
}
});
在Ember数据中,模型是表示应用程序呈现给用户的基础数据的对象。请注意,尽管Ember数据模型共享相同的名称,但它们与Routes上的model方法是不同的概念。。这是模型
/*models/cars.js*/
从“余烬数据”导入DS;
导出默认DS.Model.extend({
make:DS.attr(“字符串”),
型号:DS.attr(“字符串”),
年份:DS.attr(“字符串”)
});
在Ember中,当我们想要创建一个可以使用URL访问的新页面时,我们需要使用Ember CLI生成一个“路由”。。这是路线
/*routes/cars.js*/
从“@ember/routing/Route”导入路由;
导出默认路由。扩展({
模型(){
归还这个.store.findAll(“汽车”{
订购人:“制造”
});
}
});
/*routes/cars/edit.js*/
从“@ember/routing/Route”导入路由;
导出默认路由。扩展({});
/*routes/cars/new.js*/
从“@ember/routing/Route”导入路由;
导出默认路由。扩展({
模型(){
归还这个.store.findAll(“汽车”);
}
});
/*routes/users.js*/
从“@ember/routing/Route”导入路由;
从“jquery”导入$;
导出默认路由。扩展({
模型:函数(){
变量url=”https://api.github.com/users";
返回$.getJSON(url).then(函数(数据){
返回数据。拼接(0,10);
});
}
});
EmberRouter类管理应用程序状态和URL。。这是路由器
/*router.js*/
从“@ember/routing/router”导入EmberRouter;
从“/config/environment”导入配置;
const Router=EmberRouter.extend({
位置:config.locationType,
rootURL:config.rootURL
});
Router.map(函数(){
这条路线(“汽车”,功能(){
本条路线(“新”);
这个.route(“edit”,{path:/edit/:car_id});
});
本条路线(“用户”);
});
导出默认路由器;
模板用于跨多个页面创建标准布局。更改模板时,基于该模板的页面将自动更改。模板提供标准化控件
Github用户
{{{#每个模型作为|用户}
- {{user.login}
{{/每个}}
{{{#链接到“cars.new”}创建汽车{{/link to}
{{outlet}}
汽车
{{{#每种车型为|汽车}
-
{{car.year}{{car.make}{{{car.model}}-
{{{#链接到“cars.edit”car.id}}编辑{{/link to}
删除
{{/每个}}
{{outlet}}
Make:{{input type=“text”value=carMake}
模型:{{input type=“text”value=carModel}
年份:{{input type=“text”value=carYear}
{{input type=“submit”value=“submit”}
Make:{{input type=“text”value=model.Make}
模型:{{input type=“text”value=Model.Model}
年份:{{input type=“text”value=model.Year}
{{input type=“submit”value=“submit”}
跑
这是我的应用程序当我
删除模型挂钩内的findAll查询时,错误消失
。这可能是firebase配置的一个错误
您没有输入下面的配置。确保在app/config/environment.js中包含所有这些变量
var ENV = {
firebase: {
apiKey: "your-api-key",
authDomain: "YOUR-FIREBASE-APP.firebaseapp.com",
databaseURL: "https://YOUR-FIREBASE-APP.firebaseio.com",
projectId: "YOUR-FIREBASE-APP",
storageBucket: "YOUR-FIREBASE-APP.appspot.com",
messagingSenderId: "00000000000"
}
}
我的应用程序可以与firebase配合使用。请务必遵循以下步骤:
您已经安装了稳定版本和最新版本的emberfire
"emberfire": "^2.0.10",
"emberfire-exp": "^3.0.0-rc.1-4",
这是不必要的。安装任意一个版本。如果您使用的是ember cli 3.12.0,当您使用应用程序创建firebase连接时,默认情况下,“emberfire/adapters/firebase”将自动导入adapters/application.js,这不是真的
`/*适配器/application.js*/
从“emberfire/adapters/firebase”导入FirebaseAdapter;
导出默认FirebaseAdapter.extend({})`代码>您是否尝试构建MCVE而不是尝试粘贴整个应用程序?你能用
"emberfire": "^2.0.10",
"emberfire-exp": "^3.0.0-rc.1-4",