Я пытаюсь создать приложение для блога, используя базу данных Firebase, используя angularfire2, я хочу, чтобы пользователи могли читать все данные других пользователей, но безуспешно. Я не знаю, в чем проблема.
правила базы данных!
{
"rules": {
"report": {
"$uid": {
".read": "true",
".write": "$uid === auth.uid"
}
}
}
}
Когда я пользуюсь этими правилами, пользователи не читают все сообщения другого пользователя! Только я могу прочитать мой пост.
основной код
export class FeedPage {
itemsRef: AngularFireList<any>;
items: Observable<any[]>;
constructor(public navCtrl: NavController, public navParams: NavParams, public fire: AngularFireAuth
,public alertCtrl: AlertController,public toastCtrl: ToastController,public popoverCtrl: PopoverController,
public db: AngularFireDatabase)
{
// // Use snapshotChanges().map() to store the key
// this.items = this.itemsRef.snapshotChanges().pipe(
// map(changes =>
// changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
// )
}
ionViewWillLoad(){
this.fire.authState.subscribe(data => {
if(data && data.email && data.uid){
this.toastCtrl.create({
message : ` welcome ${data.email}`,
duration:2000
}).present()
this.itemsRef = this.db.list(`report/`+data.uid);
// Use snapshotChanges().map() to store the key
this.items = this.itemsRef.snapshotChanges().pipe(
map(changes =>
changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
)
);
}
})
}
}
база данных
{
"report" : {
"8D3sENaBcLaXoGNnh1MPuoyj5LP2" : {
"-LWl294Hs6YjkvJE5pqi" : {
"post" : "ali",
"title" : "dd"
},
"-LWlEonKLWfOttzirqp7" : {
"post" : "sas",
"title" : "ass"
},
"-LWlGvn81Kes2A-1UcC2" : {
"post" : "asa",
"title" : "asass"
}
},
"WUM2HBkGo8TFDeOjEqO1s3lCj1p1" : {
"-LWlHlhyS9m3ECS3wIdk" : {
"post" : "qwqsasasa",
"title" : "as"
},
"-LWlHmXZAJdSPZurO7ii" : {
"post" : "qwqsasasa",
"title" : "as"
}
}
}
}
если я использую этот код для получения данных, я получаю пустые HTML-данные!
this.itemsRef = this.db.list(`report`);
если я использую этот код для извлечения данных, я получаю только свое собственное сообщение, а не все остальные пользователи.
this.itemsRef = this.db.list(`report/${data.uid}`);