【发布时间】:2021-06-10 14:23:15
【问题描述】:
我正在使用 Flutter 和 Firebase,并提出了以下 Firebase 结构。
房间和用户集合:
我希望用户能够读取和写入他们的数据。 我写了以下规则:
为了获得房间,我在 Flutter 中使用了以下代码:
Stream<List<RoomModel>> getRooms() {
var user = firebaseAuth.currentUser;
return _db
.collection('rooms')
// .where("userId", "==", user.uid)
.snapshots()
.map((snapshot) => snapshot.docs
.map((document) => RoomModel.fromFirestore(document.data()))
.toList());
}
房间模型:
// import 'package:firebase_auth/firebase_auth.dart';
class RoomModel {
final String roomId;
final double price;
final String location;
final String userId;
RoomModel(this.roomId, this.price, this.location, this.userId);
Map<String, dynamic> toMap() {
// final firebaseAuth = FirebaseAuth.instance;
// var user = firebaseAuth.currentUser;
return {
'roomId': roomId,
'price': price,
'userId': userId,
'location': location,
};
}
RoomModel.fromFirestore(Map firestore)
: roomId = firestore['roomId'],
price = firestore['price'],
location = firestore['location'],
userId = firestore['userId'];
}
但是,我仍然得到了所有房间,包括其他用户的房间。
后来我还想阅读所有房间。我该怎么做?
【问题讨论】:
标签: firebase flutter google-cloud-firestore firebase-security