【发布时间】:2018-07-15 00:14:13
【问题描述】:
几天来,我一直在尝试改进保护数据库的 Firestore 规则。我似乎只是在每次编辑时都将所有人拒之门外。我现在使用的规则是在 Firestore documentation 中找到的基本规则。分别是:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
但我想稍微扩展安全性以收紧编辑规则。我的数据库如下所示:
Users (collection) > User (document) > User specific data
我想要的是每个经过身份验证的用户都可以读取所有数据,但只有文档所属的用户(通过唯一的用户 ID)可以编辑/添加/删除他们的数据。
我希望你们中的某个人能指出我正确的方向,因为我似乎没有从官方文档中得到任何更明智的信息。
更新:我如何在我的 Android 应用中集成 Firestore。
user = FirebaseAuth.getInstance().getCurrentUser();
db = FirebaseFirestore.getInstance().collection("users");
CollectionReference colRef = db.document(user.getUid()).collection("watched");
colRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
ArrayList<Movie> tempItems = new ArrayList<>();
for (DocumentSnapshot document : task.getResult()) {
// Handle data
}
} else {
Log.d(TAG, "Error getting documents: ",task.getException());
}
}
});
【问题讨论】:
标签: firebase firebase-realtime-database firebase-authentication google-cloud-firestore firebase-security