将 Firebase 图像显示到数组中
Posted
技术标签:
【中文标题】将 Firebase 图像显示到数组中【英文标题】:Display Firebase images into Array 【发布时间】:2018-05-11 05:26:03 【问题描述】:我想将 Firebase 中的图像显示到我的收藏视图中。我不知道如何从 Firebase 获取正确的节点来访问图像分支。有些用户最多有 5 个图像,但有些用户根本没有图像分支。这是我的 Firebase 数据结构。
var imagesArray: [String] = []
public func numberOfItems(in pagerView: FSPagerView) -> Int
return imagesArray.count
public func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell
let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index)
return cell
struct Users
var email: String!
var uid: String!
var ref: DatabaseReference!
var location: String?
var photoURL: String!
var biography: String?
var key: String?
var name: String!
var phoneNumber: NSNumber?
var password: String!
【问题讨论】:
您的图片在 firebase 存储中,而链接 url 在 firebase 数据库中,对吗? photoURL 不会显示在 collectionView 中,只会显示来自 images 分支的图像 您是否将图像存储在 firebaseStorage 中? 【参考方案1】:这是您需要做的。
-
获取对图像节点的引用
dbImageRef = Database.database().child("Users") .child("Images") .observeSingleEvent(of: .value, with: (snapshot) in let value = snapshot.value as! NSDictionary for image in value // add the image links in an image array here
-
使用 Kingfisher 等库下载和显示图像。
【讨论】:
应该是 .child("Users").child(1) 取一个数组。
var arrImages: [[String: String]] = []
2) 然后使用这个函数到达图像节点。
Database.database().child("Users").child(<id>).child("Images").observe(.value) (snapshot) in
print(snapshot)
if snapshot.childrenCount > 0
for users in snapshot.children.allObjects as! [DataSnapshot]
let images = users.value as? Dictionary
self.arrImages.append(images)
self.collectionView.reloadData()
else
print("No Images")
【讨论】:
我在 self.arrImages.append(image) 上遇到错误。 “任何物体?”到预期的参数类型“字符串”。当我添加为!字符串我也崩溃了以上是关于将 Firebase 图像显示到数组中的主要内容,如果未能解决你的问题,请参考以下文章