gpt4 book ai didi

ios - Swift + Firebase - 检查具有 autoId 的节点的值是否存在

转载 作者:行者123 更新时间:2023-11-28 15:29:38 29 4
gpt4 key购买 nike

我想检查用户名是否存在。

但是 Xcode 提示我的安全规则。

[Firebase/Database][I-RDB034028] Using an unspecified index. Consider adding ".indexOn": "profile/username" at /users to your security rules for better performance

如果我删除“$uid”,Xcode 不会再报错,但我的脚本不能更好地工作。

即使我输入 firebase 中存在的用户名,快照也始终为 null

我已经检查了论坛并尝试了不同用户的不同解决方案,但没有解决我的问题,所以也许我做错了什么?

这是我的规则

{
"rules": {
".read": "auth != null",
".write": "auth != null",
"users": {
"$uid": {
"profile":{
".indexOn":["username"]
}
}
}
}
}

这是我的脚本

//check if username exist in the database
static func checkIfUsernameExist(username: String, callback: @escaping (_ found: Bool) -> Void){
print(username)
let databaseRef = Database.database().reference(withPath: "users")
databaseRef.queryOrdered(byChild: "profile/username").queryEqual(toValue: username).observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot)
callback(snapshot.exists())
})
}

enter image description here

最佳答案

根据我有限的经验,我在databaseRef后面加上.child

databaseRef.child("users").queryOrdered(byChild: "profile/username").queryEqual(toValue: username).observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot)
callback(snapshot.exists())
})

至于 .indexOn,一旦您的数据量增加,它就会有所帮助。

关于ios - Swift + Firebase - 检查具有 autoId 的节点的值是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44868317/

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