Получить список элементов на основе идентификатора пользователя (из массива идентификатора пользователя) firebase Realtime Database - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу получить список устройств на основе идентификатор пользователя из массива списка пользователей. база данных показана ниже.

{
  "devices" : {
    "aglow6534" : {                                // Device ID
      "icon" : "switch",
      "name" : "AC",
      "state" : {
        "switch" : true
      },
      "type" : "RLY",
      "users" : {
        "rIXU5HucbVMTt3foI3AG7q5wBND3" : true      // User ID
      }
    },
    "aglow8728" : {                                // Device ID
      "icon" : "bulb",
      "name" : "bulb",
      "state" : {
        "intensity" : 45,
        "switch" : true
      },
      "type" : "DIMR",
      "users" : {
        "YBJAlwc0vQSmd1TYe190Of8V57y1" : true,     // User ID
        "rIXU5HucbVMTt3foI3AG7q5wBND3" : true      // User ID
      }
    }
  },
  "users" : {
    "YBJAlwc0vQSmd1TYe190Of8V57y1" : {             // User ID
      "age" : 28,
      "name" : "vipul garg"
    },
    "rIXU5HucbVMTt3foI3AG7q5wBND3" : {             // User ID
      "age" : 17,
      "name" : "puneet"
    }
  }
}

Это мои правила, я изо всех сил старался получить данные, помогите, я почти потратил на это 2 дня.

{
  "rules": {
      "devices" : {
            ".read" : "root.child('users').child(auth.uid).child('devices').hasChild(data.child('/').val())",

      }
   },
}

Требуемый результат:

Пример 1: let Идентификатор пользователя: YBJAlwc0vQSmd1TYe190Of8V57y1

"devices" : {
    "aglow8728" : {
      "icon" : "bulb",
      "name" : "bulb",
      "state" : {
        "intensity" : 45,
        "switch" : true
      },
      "type" : "DIMR",
      "users" : {
        "YBJAlwc0vQSmd1TYe190Of8V57y1" : true,
        "rIXU5HucbVMTt3foI3AG7q5wBND3" : true
      }
    }
  },

Пример 2: let Идентификатор пользователя: rIXU5HucbVMTt3foI3AG7q5w21 * * * * 20 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 3

1 Ответ

0 голосов
/ 16 апреля 2020

Я думаю, что вам нужно полностью понять Правила для баз данных Firebase Realtime первые и другие 8 ссылок в разделе Security & Rules

Ваши правила неверны в синтаксисе. Это должно быть что-то вроде этого, может быть,

{
  "rules": {
    "devices": {
      "$devices_id": {
        ".read": "true", 
        ".write": "false" // false if want to read only
      }
    },
    "users": {
      "$users_id": {
        ".read": "auth != null && auth.uid == $users_id" // this is for If you wanted to restrict access to this data such that only the logged-in user can see their own data
        ".write": "auth != null && auth.uid == $users_id"
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...