Как мы устанавливаем правило в базе данных Firebase Realtime для каждого пользователя Чтение данных, добавляемых другим пользователем, но пользователь может удалять только свои данные? - PullRequest
0 голосов
/ 03 марта 2020

Это мое правило базы данных Firebase Realtime, предположим, что здесь два пользователя устройства A и B, A добавляют данные через приложение для базы данных firebase realTime, поэтому B читает те данные, которые добавляются пользователем A, то же B добавляют данные через приложение, поэтому A читает эти данные, но оба пользователя A или B удаляют только свои собственные данные, которые он ввел, A удаляют только собственные данные и B удаляют только свои собственные данные, но оба пользователя читают данные друг друга. Итак, какое правило подать заявку здесь. мое правило таково:

  {
    "rules": {
    ".read": true,
    ".write": false,
    "AllData": {
    "$uid": {
    ".read": true,
    ".write": "$uid === auth.uid"
    }
    }
    }
    }

, и данные отправляются в firebase, вот так, вот мой код java, а мое приложение - поддержка Google и Facebook. Вход

 FirebaseUser mUser = mAuth.getCurrentUser ();
    String uid = mUser.getUid ();
    myRef = FirebaseDatabase.getInstance ().getReference ( "AllData" ).child ( uid );
    myRef.keepSynced ( true );//for syncronize the firebase data

и данные из Firebase это

myapp-cbfba
|-- AllData
    |-WNOAsWDaVlQXq2DssE9AsUCw1jB3    <- Device A
    | |-M1UGU8pMJiNGd5zsG_r
    |   |-college:"ABES"
    |   |-contact:"956379797"
    |   |-dateTime:"03-03-2020 12:52:05"
    |   |-food: "Burger"
    |   |-name:"Vishal"
    |
    |-XiFNOWYYFHhjRdHx7AGOtchjN4x2   <- Device B
      |-M1UGqWNjWVIlbtluD6D
       |-college:"TMU"
       |-contact:"9578379797"
       |-dateTime:"03-03-2020 12:50:05"
       |-food: "Pizza"
       |-name:"Ankit"

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Эти правила позволяют пользователю получать доступ только к своему собственному контенту:

{
  "rules": {
    "$uid": {
      ".write": "$uid === auth.uid",
      ".read": "$uid === auth.uid"
   }
 }
}
0 голосов
/ 03 марта 2020

Вы можете сделать что-то вроде этого:

{
  "rules": { // rule for all
    "AllData": { // rule for data
      "$uid": { /// rule for userID 
        ".write": "$uid === auth.uid" // return true/false for "==="
              // this is rule for writing. 
      }
    }
  }
}

Так что, если "$uid === auth.uid" возвращает true / false, для uid используется auth.uid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...