我正在开发一个应用程序,该应用程序在数据库中有ARReferenceImages
组供用户下载和使用。这些ARReferenceImages
由用户创建。
我已经对所有代码进行了编码,直到用户创建ARReferenceImages
为止,并将它们放入数组中,但这完全让我感到困惑。
将UIImages
上传到存储空间似乎很容易,但是当涉及ARReferenceImages
时,我根本找不到任何告诉我该怎么做的地方。
我尝试在手机上获取文件的路径,但这似乎是不够的或正确的。因此,我想知道是否应该以{{1}}的形式上传图像,并分别保存每个图像的宽度,然后在下载到手机时将其转换为UIImages
。但是,如果我可以原样上传和下载实际的ARReferenceImages
,这似乎很愚蠢。
有人能指出我正确的方向吗?
我添加的代码示例只是为了展示我正在尝试做的事情。 uploadData let引发错误,因为它应该是ARReferenceImage
类型,而不是Data()
类型。但是我只是不知道该怎么做。
谢谢。
URL
答案 0 :(得分:0)
我已经逛了几个小时,并且阅读了Firebase文档,快速文档以及阅读和查看了一些教程,我得出了以下结论。
似乎我想做的事情很困难,或者是个坏主意,因为即使它可能起作用,也可能会破坏应用程序,因为ARReferenceImages可能太笨重了。因此,我要使用的解决方案是:
这需要一些步骤,但是由于无论如何我都必须将图像转换为ARReferenceImage,因此我可以将这段代码从应用程序的上载部分移至下载部分,因此我不会得到更多实际行代码。
大多数代码并不难,但是对于主要问题,我将添加我编写的用于从数组中保存UIImage的代码:
`var counter = 0
for uiImage in uiImagesArray {
let imageName = "image\(uiImagesArray[counter])"
saveImage(imageName: imageName, theImage: uiImage, storageRef:
imagesStorageRef)
counter = counter + 1
}`
`func saveImage(imageName: String, theImage: UIImage, storageRef:
StorageReference){
//get the PNG data for image
let imageData = theImage.pngData()
//create reference for storage
let thisStorageRef = storageRef.child(gameTitle + "/" + imageName)
//upload it to Firebase
thisStorageRef.putData(imageData!, metadata: nil)
}`
如果有人想看更多我的代码,那么对于其他部分,只需发表评论,然后我将其发布。