Я добавил правила безопасности firebase с включенной аутентификацией. я дал доступ на запись на основе ключа ..

enter image description here

Firebase правила храмт

{
  "rules": {
    "users": {
        ".write": "auth.uid == \"jack\""
    }
  }
}

Теперь я собираюсь добавить эти правила в быстрый код.

  var ref: DatabaseReference!
  ref = Database.database().reference()

Setting data as

ref.child("users/jack").setValue("jack")..// Something here to change.
1
Jack 25 Ноя 2021 в 06:30

2 ответа

Лучший ответ

Вы не можете установить UID пользователя из вашего кода Swift. В конце концов, если бы вы могли это сделать, любой мог бы сделать это, взяв ваши данные конфигурации и запустив любой код, который он хочет, в вашей базе данных.

Единственный способ установить UID для пользователя - это создать собственный провайдер аутентификации, который может быть выполнен только из доверенной среды, такой как ваш компьютер для разработки, контролируемый вами сервер или облачные функции.


Вместо этого, чтобы защитить свою базу данных, войдите в Firebase Authentication в своем коде Swift (например, с помощью анонимная аутентификация), затем зарегистрируйте UID и используйте его вместо jack в своих правилах безопасности.

1
Frank van Puffelen 25 Ноя 2021 в 07:50
Спасибо .. :) Я только что разместил код ниже. пожалуйста, проверьте
 – 
Jack
25 Ноя 2021 в 08:40

По предложению Фрэнка.

Я сделал это как

под "Firebase / Auth"

 import FirebaseAuth

   Auth.auth().signInAnonymously { authDataResult, errorObj in
   if let error = errorObj {
          print("Sign in failed:", error.localizedDescription)
   } else {
     guard let userIdRecieved = authDataResult?.user.uid else {return}
            ref.child("users/\(userIdRecieved)/...
                    
                
0
Jack 25 Ноя 2021 в 08:39