gpt4 book ai didi

ios - 失败 : permission_denied when setValue: or removeValue: in Firebase Database | Swift 4

转载 作者:行者123 更新时间:2023-11-28 05:47:09 35 4
gpt4 key购买 nike

我在 stackoverflow 中看到了很多答案,但没有一个对我有用!

这是我的代码:

import UIKit
import Firebase
class ViewController: UIViewController {

@IBOutlet var txt: UITextField!
var ref = DatabaseReference.init()
override func viewDidLoad() {
super.viewDidLoad()
loginAnony()
self.ref = Database.database().reference()
}

func loginAnony(){
Auth.auth().signInAnonymously(){
(user,error) in
if let error = error{
print(error.localizedDescription)
}else{
print("User ID\(user?.user.uid)")
}
}
}

@IBAction func btnClick(_ sender: Any) {
self.ref.child("chat").setValue("Yogesh")
}

}

我的数据库规则:

service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}

我已经删除了这个:

{
"rules": {
".read": true,
".write": true
}
}

但是还是不行。谁能帮我解决这个问题?

最佳答案

Firebase 需要像这样在您的 AppDelegate 中配置

func application(_ application: UIApplication, didFinishLaunchingWithOptions... {
FirebaseApp.configure()

然后在你的 viewController 中设置一个类 var:

class ViewController: UIViewController{
var ref: DatabaseReference!

所以,不要这样做:var ref = DatabaseReference.init()

然后在 viewDidLoad 中,初始化类 var,然后进行身份验证

override func viewDidLoad() {
super.viewDidLoad()
self.ref = Database.database().reference()
//proceed to authenticate

此外,Firestore 规则不适用于 Firebase 实时数据库,它有自己的一套规则。

service cloud.firestore //doesn't do anything to RTDB

因此将您的 Firebase 数据库规则保留为默认值

{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}

关于ios - 失败 : permission_denied when setValue: or removeValue: in Firebase Database | Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241424/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com