Android 中的 Firestore 权限被拒绝

Филипа С.

我正在自学以实现 Cloud Firestone 服务。

没错,我只是想读取云中的数据,但出现以下错误:com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: 权限缺失或不足。

谁能帮助我并告诉我我做错了什么?我似乎无法指出我的错误。

提前致谢!

权限:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    // This rule allows anyone on the internet to view, edit, and delete
    // all data in your Firestore database. It is useful for getting
    // started, but it is configured to expire after 30 days because it
    // leaves your app open to attackers. At that time, all client
    // requests to your Firestore database will be denied.
    //
    // Make sure to write security rules for your app before that time, or else
    // your app will lose access to your Firestore database
    match /{document=**} {
        allow read, write: if request.time < timestamp.date(2020, 3, 14);
    }
  }
}

客户端片段.java:

FirebaseFirestore databaseReference = FirebaseFirestore.getInstance();
Query query = databaseReference.collection("clients");

FirestoreRecyclerOptions<Client> options =
                new FirestoreRecyclerOptions.Builder<Client>()
                        .setQuery(query, snapshot -> {

                            Client client = snapshot.toObject(Client.class);
                            client.setId(snapshot.getId());

                            return client;
                        }).build();

        adapter = new FirestoreRecyclerAdapter<Client, ClientViewHolder>(options) {
            @Override
            public ClientViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                // Create a new instance of the ViewHolder, in this case we are using a custom
                // layout called R.layout.message for each item
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.list_item_client, parent, false);

                ClientViewHolder viewHolder = new ClientViewHolder(view);
                viewHolder.setOnDeleteClickedListener(mOnDeleteListener);
                viewHolder.setOnEditClickedListener(mOnEditListener);
                viewHolder.setOnItemClickListener(mOnItemListener);

                return viewHolder;
            }

            @Override
            protected void onBindViewHolder(ClientViewHolder holder, int position, Client model) {
                // Bind the Chat object to the ChatHolder
                // ...

                holder.Bind(model);
            }
        };


        binding.rvClient.setLayoutManager(new LinearLayoutManager(getActivity()));
        binding.rvClient.setAdapter(adapter);

数据:

数据库中的数据图像

道格史蒂文森

您的规则允许读取和写入任何文档,但前提是当前日期早于 2020 年 3 月 14 日。

allow read, write: if request.time < timestamp.date(2020, 3, 14);

这些最初的默认规则集在三个月前有效地“过期”了。您可以根据需要更改日期(如何执行此操作应该很明显),或者您可以使用您在文档中学到的内容为您的查询实施适当的规则

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章