#objective-c #firebase #firebase-realtime-database #firebase-authentication #firebase-storage
#objective-c #firebase #firebase-база данных в реальном времени #firebase-аутентификация #база данных-хранилище
Вопрос:
Мое приложение использует Firebase с логином Facebook. Мне удалось настроить свое приложение так, чтобы у пользователя был свой профиль и он мог просматривать профили других пользователей. Когда текущий пользователь переходит к своему профилю друзей, он видит свои данные.
У меня есть элемент кнопки панели в профиле их друзей, который ссылается на TableView, отображающий больше данных, но я могу получить этот tableview только для отображения данных текущих пользователей, а не их друзей. Позвольте мне показать, что у меня есть на данный момент.
Текущий пользователь может просматривать изображения своих друзей в представлении коллекции и выбирать изображение, чтобы перенести их в этот конкретный профиль.
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("FriendsProfile", sender: self.usersArray[indexPath.row])
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
super.prepareForSegue(segue, sender: sender)
let navVc = segue.destinationViewController as! UINavigationController
let friendsVc = navVc.viewControllers.first as! FriendsViewController
friendsVc.receiverData = sender
}
Затем, когда они находятся в профиле друзей, Чтобы отобразить изображение друзей, имя и т. Д. В представлении, загруженном, Я вызываю:
let imageUrl = NSURL(string: receiverData?.objectForKey("profile_pic") as! String)
let imageData = NSData(contentsOfURL: imageUrl!)
friendsImage.image = UIImage(data: imageData!)
self.configureName(receiverData?.objectForKey("Name")as? String)
На этой странице есть элемент кнопки панели, который приведет пользователя к табличному представлению, отображающему больше данных, но в настоящее время я могу отображать только данные пользователей, а не их конкретных друзей, основываясь на том, чей профиль они выбрали.
База данных, к которой я обращаюсь, выглядит следующим образом:
user-posts
user-id
key
title:
notes:
И я получаю к нему доступ, настраивая код следующим образом в FriendsTopicList.m
:
-(void)viewDidLoad {
[super viewDidLoad];
self.ref = [[FIRDatabase database] reference];
self.dataSource = [[FriendsDataSource alloc] initWithQuery:[self getQuery] modelClass:[Topic class]
cellReuseIdentifier:@"post" view:self.tableView];
[self.dataSource populateCellWithBlock:^(FriendsTableViewCell *_Nonnull cell, Topic *_Nonnull topics) {
cell.textLabel.text = topics.title;
cell.textLabel.textColor = [UIColor whiteColor];
cell.backgroundColor = [UIColor colorWithRed:(16/255.0) green:(17/255.0) blue:(23/255.0) alpha:1];
cell.textLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:18];
UIView *selectionColour = [[UIView alloc] init];
selectionColour.backgroundColor = [UIColor blackColor];
cell.selectedBackgroundView = selectionColour;
}];
self.tableView.dataSource = self.dataSource;
self.tableView.delegate = self;
// self.tableView.backgroundColor = [UIColor blackColor];
}
-(NSString *)getUid {
return [FIRAuth auth].currentUser.uid;
}
А затем ссылка на этот код в представлении, содержащем TableView, вызывается MyFriendsTopics.h:
с помощью firebaseQuery
@interface MyFriendsTopics : FriendsTopicsList
Вот запрос:
-(FIRDatabaseQuery *)getQuery {
return [[self.ref child:@"user-posts"] child:[super getUid]];
}
Теперь я знаю, что getUid является причиной отображения данных текущих пользователей, но я не понимаю, что должно быть на его месте для отображения сведений о друзьях. Я просто очень смущен, и мне нужно указать правильное направление.
Нужно ли мне передавать словарь в качестве отправителя с помощью элемента кнопки панели в профиле друзей? И вызовите, что в представлении загружалось в качестве ссылки для cell.textLabel
?
Комментарии:
1. Любая помощь будет оценена, я в значительной степени схожу с ума в данный момент