пользователи с таким 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 и аутентификации пользователей в целом, так что извините за мой французский :) Заранее спасибо всем гуру там.