如何将配置文件链接上传到 Firebase 数据库
Posted
技术标签:
【中文标题】如何将配置文件链接上传到 Firebase 数据库【英文标题】:How to upload the profile link to firebase database 【发布时间】:2020-01-07 04:40:02 【问题描述】:当我的“ProfileImageuUrl”出现在 firebase 数据库中时,缺少指向个人资料图像的链接,这导致我的用户个人资料发生故障,因为其中没有链接,所以图像不会显示firebase 数据库如何将我的代码重构到这个问题
if let AuthData = AuthDataResult
print(AuthData.user.email)
let dict : Dictionary < String, Any> = [
"uid": AuthData.user.uid,
"email": AuthData.user.email,
"ProfileImageUrl": "",
]
if let profileImge = self.selectedImage, let imageData = profileImge.jpegData(compressionQuality: 0.1)
let StorageRef = Storage.storage()
.reference(forURL: "gs://tunnel-vision-458d6.appspot.com/")
let storageProfileRef = StorageRef.child("profileImage").child(AuthData.user.uid)
let metadata = StorageMetadata()
metadata.contentType = "profileImage.jpg"
storageProfileRef.putData(imageData, metadata: metadata) (storageMetadata, error) in
if error != nil
return
storageProfileRef.downloadURL (url, error) in
if let metaImageUrl = url?.absoluteString
print(metaImageUrl)
Database.database().reference().child("users").child(AuthData.user.uid).updateChildValues(dict, withCompletionBlock:
(error,ref) in
if error == nil
print("Done")
【问题讨论】:
【参考方案1】:您正在为 dict 中的 ProfileImageUrl 分配一个空字符串:
let dict : Dictionary < String, Any> = [
"uid": AuthData.user.uid,
"email": AuthData.user.email,
"ProfileImageUrl": "",
]
而且你以后永远不会更新它。 dict 的写法与您在此处看到的完全一样。在写之前给它分配你想要的值。
【讨论】:
我是分配 Firebase 存储 url 还是分配给它的照片图像文件夹【参考方案2】:你需要
1- 将dict
设为变量
var dict : Dictionary < String, Any> = [
"uid": AuthData.user.uid,
"email": AuthData.user.email
]
2- 为ProfileImageUrl
分配一个值,并在storageProfileRef.downloadURL
的回调中嵌入更新值,其中您有一个图像的网址
storageProfileRef.downloadURL (url, error) in
if let metaImageUrl = url?.absoluteString
print(metaImageUrl)
dict["ProfileImageUrl"] = metaImageUrl
Database.database().reference().child("users").child(AuthData.user.uid).updateChildValues(dict, withCompletionBlock:
(error,ref) in
if error == nil
print("Done")
【讨论】:
firebase 存储链接显示在数据库中,但是当您单击链接时没有出现图像@sh-khan 链接扩展名是jpg
我正在设置个人资料屏幕,用户注册的个人资料图片没有出现在他们的个人资料中,因为它没有出现在 firebase 存储中,它说 safari 无法打开指定地址,这段代码让我失望了@sh-khan
什么链接扩展@sh-khan以上是关于如何将配置文件链接上传到 Firebase 数据库的主要内容,如果未能解决你的问题,请参考以下文章