当前位置: 首页 > 知识库问答 >
问题:

Firestore错误limit_to_first,无法读取Firestore值

钦楚青
2023-03-14
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
                /*-----tile menus----------*/
        match /users/defaultmenuItems/{document=**} {
          allow read: if isOwner(userId); 
          allow write: if false;
        }

        match /users/{userId}/{document=**} {
          allow read,write,update: if isOwner(userId); 
        } 

        function isOwner(userId) {
          return request.auth.uid == userId;
        }
    } 
}
public void readMenu(final String collection, final String path, final DataRead dataStatus) {
        firebaseFirestore.collection(collection)
                .document(userId + path)
                .get()
                .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if (task.isSuccessful()) {
                            DocumentSnapshot documentSnapshot = task.getResult();
                            if (documentSnapshot.exists()) {
                                dataStatus.DataIsRead(documentSnapshot);
                            } else {
                                getDeafaultItems(collection, path);
                            }
                        } else {
                            Log.d(TAG, "Sorry ....");
                        }
                    }
                });
    }

private void getDeafaultItems(final String collection, final String path) {
        Log.d("MY_PATH",collection + "/defaultmenuItems"+path);
        firebaseFirestore.collection(collection)
                .document("defaultmenuItems" + path)
                .get()
                .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                    @Override
                    public void onSuccess(DocumentSnapshot documentSnapshot) {
                        if (documentSnapshot.exists()) {
                            copyFromDefaults(collection, documentSnapshot, path);
                        }
                    }
                });
    }
users/defaultmenuItems/critical/home  

共有1个答案

凌智
2023-03-14
        match /users/defaultmenuItems/{document=**} {
          allow read: if isOwner(userId); 
          allow write: if false;
        }
 类似资料:
  • 我有一个文档集合,其中文档的id是用户id。让我们称这些为用户文档。 每个“用户文档”包含聊天消息的子集合。但并不是所有的“用户文档”都包含任何字段(数据,而不是子集合)。 我不想返回集合中没有任何字段但有子集合的所有文档,但我觉得这是不可能的? 此代码只返回包含字段的文档,而不是只有子集合的文档?有没有办法全部返回? 如何获取集合中所有文档id的列表?空的和非空的都有?或者,如果我不能访问没有字

  • 我想使用Ionic 4 Firestore为应用程序提供离线和实时同步功能。 目标部署到本地应用程序(iOS,Android),电子应用程序(Windows和Mac),PWA。 > firestore本地缓存在混合应用中是否持久?firestore缓存使用什么类型的存储?它会像localstorage一样,android/iOS会在存储空间不足时不时删除它。 我正在用下面的代码进行测试,并启用了持

  • 如何从Flatter firestore读取子集合。我正在使用cloud\u firestore。我正在成功地将数据添加到firestore中,但无法检索它(已尝试,但失败)。我想检索名为product Firestore collection的子集合 我试过了,我没有文档ID,因为它是从fiRecovery自动生成的:

  • Firestore如果我读取了一个集合,该集合包含100个文档,那么firebase是将其计算为100个读取操作还是1个读取操作? 如果我的1个文档包含另外2个集合,每个子集合包含10个文档,那么在这种情况下,总读取计数是多少?如果它单独计算子集合和it文档,那么Firestore的定价非常高

  • 我正在尝试优化我的应用程序在Firesbase上的读取次数,并回顾我使用快照监控实时更改的方式。假设我有一个快照,返回10个最新文档,如下所示: 医生说 每次查询结果更改时(即添加、删除或修改文档时),快照处理程序都会收到一个新的查询快照。 这是否意味着每次查询更改时,我都将被计费10次读取?在这个例子中,如果添加了一个新城市(所以使用最新的“日期添加”,所以在查询中排在第一位),它将是1(只是新

  • 我想使用Android Studio和Firebase制作一个在线QuizGame。第一步将是一个玩家的游戏模式,他可以从服务器获得问题。代码本身不是大问题,但我对FiRecovery的读取/定价有疑问。 游戏将是这样的:一轮,5个问题。我想让数据库看起来像这样: 项目:类别(集合)- 我的一般问题是,假设我正在寻找一个ID。例如,我的类别集合中有50个ID。如果我启动一个查询,它会检查每个条目,