UIWebView для вызова URL из базы данных Firebase
Я не знаю, так ли это, что я просто упустил очевидное решение или что-то еще, но я надеюсь, что вы можете указать мне правильное направление.
У меня есть база данных firebase, которая предоставляет информацию для статей, такую как название, img и т. Д. Она также содержит URL-адрес веб-сайта, на котором показана фактическая статья, я использую UIWebView для отображения веб-сайта с соответствующей статьей.
У меня сейчас работает WebView, как и ожидалось, но URL-адрес жестко закодирован, поэтому отображается только одна статья, и я не знаю, как получить URL-адрес статьи для передачи из базы данных Firebase в мой код и работать с ней. WebView и показать разные статьи в зависимости от того, какая статья нажата пользователем.
Ниже я включил как код, который обрабатывает запрос firebase, так и код, который устанавливает WebView.
Любая помощь будет оценена.
func fetchArticles() {
collectionView.dataSource = self
collectionView.delegate = self
let db = Firestore.firestore()
db.collection("articles").getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
let article = Article()
self.mapArticle(document: document, article: article)
self.articles.append(article)
}
self.collectionView.reloadData()
}
}
}
func mapArticle(document: QueryDocumentSnapshot, article: Article) {
var data = document.data()
article.title = data["title"].toString
article.ArticleImageName = data["article_Img"].toString
article.leauge = data["leauge"].toString
article.authorProfilePic = data["author_img"].toString
article.uploadDate = data["upload_Date"].toString
article.URL = data["URL"].toString
//...
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{
return articles.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellID", for: indexPath) as! hubArticle
let article = articles[indexPath.row]
cell.titleLable.text = article.title
cell.authorProfileView.loadImageUsingUrlString(urlString: article.authorProfilePic)
cell.subTitleLabel.text = article.leauge
cell.hubArticleThumbnailImageView.loadImageUsingUrlString(urlString: article.ArticleImageName)
return cell
}
и это код для WebView
//sets up webview
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
webView = UIWebView(frame: UIScreen.main.bounds)
webView.delegate = self
self.addSubview(webView)
if let url = URL(string: "https://afu.moebn.com/good-week-bad-week-bafa-nl-2018-week-twelve/") {
let request = URLRequest(url: url)
webView.loadRequest(request)
}
}