Аутентификация базы данных Firebase Swift - PullRequest
0 голосов
/ 16 ноября 2018

Я реализовал режимы входа в систему и регистрации для аутентификации через Firebase. Тогда как я могу пройти аутентификацию в моей базе данных? Я изменил правила и поставил:

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}

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

PS: мне нужен пример в Swift.

Ответы [ 2 ]

0 голосов
/ 30 июля 2019

Swift 5 Только для аутентификации, а затем используйте свой собственный код для расширения

 let credential = PhoneAuthProvider.provider().credential(
        withVerificationID: FireBaseverficationID,
        verificationCode: "your device code")

 let defaults = UserDefaults(suiteName: "group.Company.AppName")
 let encodedData = NSKeyedArchiver.archivedData(withRootObject: credential)
    defaults?.set(encodedData, forKey: "firebasecredential")

После этого в вашем файле расширения декодируйте это значение по умолчанию и используйте учетные данные для входа в систему

let decoded = UserDefaults(suiteName: "group.Company.AppName")?.object(forKey: "firebasecredential") as! Data
    let credential = NSKeyedUnarchiver.unarchiveObject(with: decoded) as! PhoneAuthCredential

//MARK: - If user already login with credential
    let userid = Auth.auth().currentUser
    if userid == nil{
        Auth.auth().signInAndRetrieveData(with: credential) { (authResult, error) in
            if error != nil {

                return
            }
            else
            {
                //MARK:- Your desire code After Login
            }
        }
    }else{
        //MARK:- Your desire code if User already Login
    }
0 голосов
/ 16 ноября 2018

попробуйте следующий формат:

облачный пожарный магазин

  service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

база данных в реальном времени

// Проверяет, что идентификатор пользователя равен идентификатору узла базы данных

// Другими словами, Пользователь может получить доступ только к своим данным

{
  "rules": {
    "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...