我在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
}
}
但是仍然无法正常工作,任何人都可以在Advanced中感谢我。
答案 0 :(得分:1)
需要像这样在您的AppDelegate中配置Firebase
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"
}
}