您好我正在尝试学习firebase,因为Parse将关闭,我在将用户添加到我的数据库时遇到了一些麻烦。
按照网站上的iOS教程,我首先使用以下方式收听用户列表:
- (void)setUpRootReference {
self.rootReference = [[Firebase alloc] initWithUrl:@"firebaseurl"];
// Attach a block to read the data at our posts reference
[self.rootReference observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"%@", snapshot.value);
if (snapshot.value != [NSNull null]) {
userDic = [snapshot.value objectForKey:@"users"];
NSLog(@"user dictionary: %@", userDic);
}
} withCancelBlock:^(NSError *error) {
NSLog(@"%@", error.description);
}];
}
然后在用户使用Instagram成功登录后,我想将新用户附加到我现有的用户列表中。但是现在它只是被写了,我总是留下一个用户。
以下是用户注册后的完成代码:
//create a path on firebase for users
Firebase *usersRef = [self.rootReference childByAppendingPath: @"users"];
[userDic setValue:newUserDic forKey:newUser.instagramHandle];
[usersRef setValue:userDic];
有没有人知道如何在现有的用户词典中添加一个值,而不是每次都删除它并创建一个新的?
感谢
更新:
我想出了如何让它发挥作用。每次创建新用户时,您都希望对该用户进行新的引用
溶液:
//create a path on firebase for users
Firebase *allUsersRef = [self.rootReference childByAppendingPath: @"users"];
Firebase *newUserRef = [allUsersRef childByAppendingPath:newUser.instagramHandle];
[newUserRef setValue:newUserDic];
现在将添加一个新的用户词典,密钥是用户Instagram句柄
答案 0 :(得分:0)
NSDictionary *nickname = @{
@"nickname": @"Igor Kuznetsov",
};
[userRef updateChildValues: nickname];
有一个名为updateChildValues的方法。尝试这样的事情。 [userRef updateChildValues:nickname]; 我上面的示例将更改为例如用户的昵称,在您的情况下,您可以更改您感兴趣的属性的昵称。