FireBase - 将用户添加到用户列表

时间:2016-02-29 13:07:03

标签: ios objective-c firebase

您好我正在尝试学习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句柄

1 个答案:

答案 0 :(得分:0)

NSDictionary *nickname = @{
    @"nickname": @"Igor Kuznetsov",
};
[userRef updateChildValues: nickname];

有一个名为updateChildValues的方法。尝试这样的事情。 [userRef updateChildValues:nickname]; 我上面的示例将更改为例如用户的昵称,在您的情况下,您可以更改您感兴趣的属性的昵称。