我通过Firebase实现了身份验证的登录和注册视图。那我该如何验证我的数据库?我更改了规则,然后输入:
{
"rules": {
"users": {
"$uid": {
".write": "$uid === auth.uid"
}
}
}
}
我还编写了用于获取用户UID的代码,但是如何对我的数据库进行身份验证?
PS:我需要Swift中的示例。
答案 0 :(得分:1)
雨燕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
}
答案 1 :(得分:0)
尝试以下格式:
云Firestore
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
实时数据库
//检查auth uid等于数据库节点uid
//换句话说,用户只能访问自己的数据
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}