2016-02-29 83 views
0

您好我正在嘗試學習firebase,現在Parse將被關閉,我在將用戶添加到我的數據庫時遇到了一些麻煩。FireBase - 將用戶添加到用戶列表

按照網站上的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]; 

有誰知道我能一定的價值,追加到用戶與擦除,並創建一個新的每一次的現有的字典?

感謝

UPDATE:

我想出如何使它發揮作用。每次你創建一個新用戶,你想使一個新的參考用戶

解決方案:

//create a path on firebase for users 
     Firebase *allUsersRef = [self.rootReference childByAppendingPath: @"users"]; 
     Firebase *newUserRef = [allUsersRef childByAppendingPath:newUser.instagramHandle]; 
     [newUserRef setValue:newUserDic]; 

現在會有一個新的用戶詞典添加關鍵是用戶的Instagram處理

+0

有關firebase的Idk,但要修改現有字典,您必須使用「NSMutableDictionary」而不是「NSDictionary」。 – NSNoob

+0

這包括在[存儲用戶數據的文檔](https://www.firebase.com/docs/ios/guide/user-auth.html#section-storing)中,它確實使用了'childByAppendingPath'。整個iOS指南非常值得一讀。 –

+0

另請參閱以下與昨天密切相關的問題:http://stackoverflow.com/questions/35678559/new-user-vs-old-firebase-facebook-authentication –

回答

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

有一種叫做updateChildValues的方法。嘗試這樣的事情。 [userRef updateChildValues:nickname]; 我上面的例子會改變用戶的暱稱,在你的情況下,你可以改變你有興趣的屬性的暱稱。