Firebase安全规则不适用于其他路径

时间:2020-05-28 18:11:53

标签: java android firebase firebase-realtime-database firebase-security

private void showingDatafromDatabase() {


        if (currentUser != null) {

            String uid = currentUser.getUid();

            DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users");

            ref.child(uid).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    UserInfo info = dataSnapshot.getValue(UserInfo.class);

                    assert info != null;

                    String coin = info.getCoins();
                    String isAvailable = info.getIsRefered();
                    TextView cointext = view.findViewById(R.id.coinstext);
                    cointext.setText(coin);

                    coinChecker = Integer.parseInt(coin);

                    boolean isRefer = Boolean.parseBoolean(isAvailable);
                    if (isRefer) {
                    } else {
                        inputrefer.setVisibility(View.VISIBLE);
                    }

                    querydailyrewards();
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

        }
    }


    private void querydailyrewards() {

        if (currentUser != null) {

            String uid = currentUser.getUid();
            DatabaseReference queryRef = FirebaseDatabase.getInstance().getReference().child("Refer Code");

            Query query = queryRef.child(uid).orderByChild("isCheckin");
            query.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    if (dataSnapshot.exists()) {

                        UserInfo data = dataSnapshot.getValue(UserInfo.class);

                        assert data != null;
                        showingDatafromDailyRewards();

                    } else {

                        addDailyRewardValue();

                    }

                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                    Toast.makeText(getActivity(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();

                }
            });

        }

    }

{
  "rules": {
    "Users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

projectname
|
|Refer Code|
|          |
|         uid
|            |- refercode
|            |- uid
|Users |
       |
     uid
       |- coins
       |- email
       |- name
       |- refercode
 

我正在使用Firebase身份验证规则,因此只有用户可以访问自己的内容,但它仅适用于一个路径,并且向我显示其他规则的权限被拒绝错误。此规则对用户查询有效,但对我显示错误参考代码查询拒绝了权限。我希望用户访问其他内容而不是其他内容

0 个答案:

没有答案