Angular 2 Firebase-如何实现SQL行为?
我知道可以将一个对象存储在另一个对象中。但我不想使用这种结构 例如,我希望具有以下结构:Angular 2 Firebase-如何实现SQL行为?,angular,firebase,firebase-realtime-database,angularfire2,Angular,Firebase,Firebase Realtime Database,Angularfire2,我知道可以将一个对象存储在另一个对象中。但我不想使用这种结构 例如,我希望具有以下结构: { courses: 01: { courseName: "English" }, 02: { courseName: "German" } teachers: 01: { lastname: "smith", for
{
courses:
01: {
courseName: "English"
},
02: {
courseName: "German"
}
teachers:
01: {
lastname: "smith",
forename: "john"
},
02: {
lastname: "schmidt",
forename: "john"
}
coursePerTeacher:
01: {
courseID: "01",
teacherID: "02"
},
02: {
courseID: "02",
teacherID: "02"
},
03: {
courseID: "01",
teacherID: "01"
}
}
每个节点都应该类似于SQL中的表
我在Angular2中使用angularfire2访问firebase数据库。
第一个问题是我应该创建和使用多少服务?我想我可以创建一个课程服务,一个教师服务。coursePerTeacherService有用吗?还是只使用一个具有不同方法的服务更好?
我的问题不是在每个服务中创建CRUD。但是,我如何才能创建一个页面,向我展示约翰·施密特老师能够教德语和英语。约翰·史密斯只教英语
我的问题是,我目前的成功在于我只能显示存储在coursePerTeacher节点中的内容。但是从这一点上,我想由老师总结一下,并显示出引用id的后面是什么。换句话说,就是名字
我真的不知道该怎么编码。组件类中的部分是什么,服务类中的部分是什么
下一件事是我可以对这种结构的行为做些什么
{
categories:
01: {
cat_name: "java programming",
cat_description: "here is everything you need to know about java"
},
02: {
cat_name: "html",
cat_description: "...."
}
topics:
01: {
topic_subject: "need help in java",
topic_date: "08/01/2017",
topic_cat: "01",
topic_by: "01"
},
replies:
01: {
reply_content: "java doesn't work anymore?",
reply_date: "08/01/2017",
reply_topic: "01",
reply_by: "01",
},
02: {
reply_content: "what's your specific question?",
reply_date: "08/01/2017",
reply_topic: "01",
reply_by: "02",
},
users:
01: {
username: "newbie",
}
02: {
username: "proCoder",
}
}
我现在没有一个真正的例子。我希望我的意思是可以理解的,并且结构中没有错误
如果引用不在特定节点内,我应该如何工作?如果它在每个对象中,我应该如何工作
我真的有点麻烦。一个详细的教程或一个简单的例子(组件和服务)会非常好
我以前从未使用过NoSQL数据库
对不起,糟糕的英语,在我的国家,是在深夜。 < p>对于来自SQL背景的你的FialBasic问题,这个播放列表会帮助你很多 大多数情况下,您只需在组件中插入firebase服务并在其中执行逻辑即可。如果你需要额外的服务(不是Firebase)或者不想复制你的代码,最好只有一个TeacherService,然后取决于你是否想延迟加载你的课程,你可以创建一个CourseService。如果在同一屏幕上显示教师和课程,您可以一次完成所有服务。因此,要继续,最好根据您的视图对您的服务进行建模 如果您要在服务中使用firebase,您可以执行以下操作: 从“angularfire2”导入{AngularFire,FirebaseListObservable}; 从“@angular/core”导入{Injectable}
@Injectable()
export class TeacherService{
constructor(private af: AngularFire) {}
getTeachers(): FirebaseListObservable {
return this.af.database.list('/teachers');
}
addTeacher(teacher: string) {
return this.af.database.list('/teachers').push(teacher);
}
deleteTeacher(teacher: any) {
return this.af.database.list('/teachers').remove(teacher)
}
getCourses(teacher:any){
return this.af.database.list('/teachers/'+teacher.key+'/courses') //this depends on how you structure your db
}
也来看看这个视频