пользователи с таким UID могут получить доступ к данным там. Он не может быть подделан - он работает только с приложениями, использующими проверку подлинности Firebase, когда пользователь вошел в систему. Это не просто параметр какого-то веб-API.

ий вопрос (ы): Каковы риски / проблемы, если я выставляю UID других пользователей на стороне клиента?

Мое обстоятельство: я создаю тестовое приложение для Android, которое должно иметь возможность 1) авторизовать запрос пользователя foo для 2) доступа к личным данным пользователя А.

Я не знаю, является ли это "духовным" фактом, но я просто не могу найти никакого предупреждения на Firebase о "НЕ ИСПОЛЬЗУЙТЕ UID". Я пробежался по разделу о безопасности пользователя и демонстрации примера чата в Firebase, и кажется, что общий подход создает поле «поделиться» или «авторизовано» с uid авторизованного пользователя как true. Мой вопрос в первую очередь о первом шаге. Ниже приведен фрагмент моей структуры данных.

 {
      "users" : {
        "uid_of_user_a" : {
          "requests" : {
            "-KeXTQeFJ2gAiaazteO1" : {
              "requestUid" : "uid_of_user_foo",
              "targetUid" : "uid_of_user_a",
              "timeStamp" : 123456
            }
          }
        }
      }
    }

Мое мышление таково.

Правила для поля запроса таковы, что оно доступно для чтения / записи для пользователя с uid_of_user_a и доступно для записи любым аутентифицированным пользователям, только если такой пользователь выдвинет targetUid, соответствующий uid_of_user_a.

На стороне клиента пользователь A имеет onChildEventListener, прикрепленный со ссылкой на это поле. Когда клиент получает обратный вызов onChildAdded, появляется диалоговое окно и запрашивает подтверждение.

Если подтверждено, клиентская сторона извлекает uid запрашивающего из сообщения запроса и помещает его в поле «авторизованный»

Личные данные пользователя А могут быть затем прочитаны с помощью идентификатора пользователя, указанного в авторизованном поле.

Проблема: Требуется предоставить клиенту uid другого пользователя. Этот метод сравним с тем, как если бы кто-то звонил по телефону, звонящий должен сначала узнать номер телефона принимающей стороны. таким образом, без фактического предоставления телефонных номеров и электронной почты, кто-то должен каким-то образом знать UID, чтобы даже передать сообщение и попросить предоставить данные для обмена, верно? .... но мой интуитивный подход кажется сомнительным.

Я новичок в базе данных firebase и аутентификации пользователей в целом, так что извините за мой французский :) Заранее спасибо всем гуру там.

Ответы на вопрос(1)

Ваш ответ на вопрос