我对Firebase和Swift很陌生,在查询时遇到了一些麻烦。因此,基本上我想做两件事:
正如您所看到的,我正在使用Firebase的简单登录(稍后我也想添加Facebook登录),并且我正在按用户的uid存储我的用户。
我的规则文件的一部分如下所示:
"registered_users": {
".read": true,
".write": true,
".indexOn": ["name"]
}
所以每个人都应该对我的这部分数据有读写权限。
我还在他们的网站上阅读了FirebaseiOS指南中的“检索数据”部分,根据该指南,我获取所有用户姓名和电子邮件地址的代码应该可以工作,至少我认为是这样。但事实并非如此。这是我的代码:
func getUsersFromFirebase() {
let registeredUserRef = firebaseRef.childByAppendingPath("registered_users")
registeredUserRef.queryOrderedByChild("name").observeSingleEventOfType(.Value, withBlock: { snapshot in
if let email = snapshot.value["email"] as? String {
println("\(snapshot.key) has Email: \(email)")
}
if let name = snapshot.value["name"] as? String {
println("\(snapshot.key) has Name: \(name)")
}
})
}
我注意到,在firebase指南中,他们总是使用ChildAdded类型,而不是Value,但对我来说Value更有意义。有值的输出为nothing,有ChildAdded的输出只有一个用户,即当前登录的用户。
所以我的问题是:
我希望我的描述足够详细。Thx提前感谢您的帮助。
补充资料:
奇怪的是,“检索数据”指南说,可以按高度查询和排序以下数据。
数据:
这不正是我想要做的吗?
回答您的问题
1)是的,您可以使用当前结构进行查询。查询可以深入1个子级,但不能在子级的子级中进行。
2)如果是,我将如何更改我的代码,使其工作?
以下是按用户姓氏进行查询的快捷方式:
Firebase *usersNodeRef = your users node 'registered_users'
FQuery *allUsersRef = [usersNodeRef queryOrderedByChild:@"lastName"];
FQuery *specificUserRef = [allUsers queryEqualToValue:@"aLastName"];
[specificUser observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
NSDictionary *dict = snapshot.value;
NSString *key = snapshot.key;
NSLog(@"key = %@ for child %@", key, dict);
}];
如何查询例如“muster”并仅获取用户simplelogin:1(Max Mustermann)?
在uses节点结构中,用户存储在具有键的节点中。。关键是simplelogin:1等快照。钥匙会显示出来的。所以这是关键/价值对交易。。。
值=snapshot.value键=snapshot.key
我遇到过类似的情况,我想从子节点中提取数据。
https://groups.google.com/d/msg/firebase-talk/Wgaf-OIc79o/avhmN97UgP4J
我可以推荐的第一件事是不要将Firebase查询视为SQL查询,因为它们不是。它们就像是一个轻松的问题。
其次,如果要查询,需要将数据展平,因为查询只能进行一级深度(不能真正查询子注释中的数据)
最后,如果您不想将数据扁平化,请选择一个概念性选项来回答您的问题;
我已经运行了许多测试和性能方面的测试,除非您有数千个用户,否则这是微不足道的。
希望有帮助!
实现django 2登录和注册的最佳方式是什么instagram.com.用户可以用用户名和电子邮件或电话和密码注册。注册后,用户可以用电子邮件地址、电话号码或用户名登录。 谢谢
问题内容: 我正在尝试创建一个auth后端,以允许我的用户使用他们的电子邮件地址或他们在Django 1.6中使用自定义用户模型的用户名登录。当我使用用户名登录时,后端工作正常,但由于某种原因,没有电子邮件。有什么我忘记要做的事吗? 编辑:按照建议,我已从ModelBackend继承并将其安装在我的设置中。在我的设置中,我有这个(,)并且我将后端更改为这个: 现在我得到一个错误。 问题答案: 遵循
我在试着从他的电子邮件里得到一个用户名。我知道有一些简单的方法可以实现这一点,但它让我怀疑我是否可以只使用Regex来实现这一点。 让我们假设用户输入以下电子邮件:user.sure_name123@mail.co 从该字符串中,我想提取:user sure name
问题内容: 我正在尝试使用他们的电子邮件地址在appengine数据存储区中查找用户。我正在使用Go。 此代码找不到任何用户。 如果我更改查询以使用“ Id”属性查找用户,则可以正常工作。 我已经确认“ AccountEmail”的属性名称和值正确。“ AccountEmail”它也被索引。 为了使查询正常工作,是否需要使用电子邮件地址进行某些特殊格式设置? 问题答案: 为了通过电子邮件()查找用
问题内容: 给定以下电子邮件地址-someone@example.com-如何使用javascript从该地址提取某人? 谢谢。 问题答案: 匹配的正则表达式 安全检查 写成一行 带替换的正则表达式 安全检查 写成一行 分割字符串 安全检查 写成一行
我已经实现了登录用户名或电子邮件在我现有的项目和工程罚款。我想将其扩展为使用用户名、电子邮件或电话登录。我想要一个用户登录用户名,电子邮件或电话号码和密码。 这是我的代码App\Http\Controllers\Auth\LoginController 应用程序\Http\控制器\Auth\注册控制器 注册工作正常,我可以将用户电话存储到用户表中。我已将电子邮件的输入类型更改为views/auth