Firebase在Swift中检索数据
我试图从当前login的用户检索特定的数据。 我的数据库中的数据如下所示:
例如,我想只抓住full_name并将其保存在variablesuserName中。 以下是我用来抓取我的数据
ref.queryOrderedByChild("full_name").queryEqualToValue("userIdentifier").observeSingleEventOfType(.ChildAdded, withBlock: { snapshot in print(snapshot.value) // let userName = snapshot.value["full_name"] as! String })
不幸的是,这是我的控制台打印。
我将不胜感激任何帮助:)谢谢!
它给你的警告消息indexOn
因为你正在查询。
您应该通过安全和Firebase规则中的.indexOn规则来定义要编入索引的键。 虽然您可以在客户端上特别创build这些查询,但在使用.indexOn时,您将看到性能大大提高
如您所知,您正在查找的名称可以直接转到该节点,而无需查询。
let ref:FIRDatabaseReference! // your ref ie. root.child("users").child("stephenwarren001@yahoo.com") // only need to fetch once so use single event ref.observeSingleEventOfType(.Value, withBlock: { snapshot in if !snapshot.exists() { return } //print(snapshot) if let userName = snapshot.value["full_name"] as? String { print(userName) } if let email = snapshot.value["email"] as? String { print(email) } // can also use // snapshot.childSnapshotForPath("full_name").value as! String })
{ "rules": { "tbl_name": { ".indexOn": ["field_name1", "field_name2"] }, ".read": true, ".write": true } }
你可以在任何字段上应用indexOn。 在规则安全性和规则选项卡中添加此json。 希望这对你有用。 🙂
它检索login的用户数据:
let ref = FIRDatabase.database().reference(fromURL: "DATABASE_URl") let userID = FIRAuth.auth()?.currentUser?.uid let usersRef = ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in print(snapshot)
斯威夫特4
let ref = Database.database().reference(withPath: "user") ref.observeSingleEvent(of: .value, with: { snapshot in if !snapshot.exists() { return } print(snapshot) // Its print all values including Snap (User) print(snapshot.value!) let username = snapshot.childSnapshot(forPath: "full_name").value print(username!) })
- Swift 3:tableView复制来自Firebase的加载图片
- BigQuery不会为链接的Firebase Analytics事件日志显示任何数据集
- Facebooklogin用户数据不在Firebase控制台中显示
- 有序arrays与Firebase
- 在Firebase中更改值后移除观察者
- 更改Firebase电子邮件不会更新providerData
- Firebase:针对同一个项目中的每个应用程序进行自定义validation
- Firebase:FIRApp.configure()一直希望我将其更改为FirebaseApp.configure()
- 在iOS Obj-C中何处添加Firebase数据库引用