Google Firebase iOS 构建将文件上传到 Mac 上的存储,但在 iPad 上运行时触发 StorageException
Posted
技术标签:
【中文标题】Google Firebase iOS 构建将文件上传到 Mac 上的存储,但在 iPad 上运行时触发 StorageException【英文标题】:Google Firebase iOS build uploads file to storage on Mac, but triggers StorageException when running on iPad 【发布时间】:2021-09-11 06:37:30 【问题描述】:我使用 Unity (2019.4) 和 Google Firebase SDK 构建了一个 ios 应用。在这个场景中,我从 BLE 设备获取数据,将其写入 .csv,然后将此 .csv 上传到 Firebase 存储。当我在我的 Mac (OS 10.15.7) 上的 Unity 编辑器中运行此应用程序时,.csv 文件会正确上传。但是,当我将此脚本构建到我的 iPad Pro (14.4.2) 时,我得到了 StorageException:
Autoconnected Player 上传失败,因为 System.AggregateException:发生了一个或多个错误。 ---> Firebase.Storage.StorageException:在所需的引用处不存在对象
管理我的 .csv 上传的协程在这里:
private IEnumerator UploadCSV()
string filepath = GetComponent<CSVManager>().WriteCSV();
fbS = FirebaseStorage.DefaultInstance;
var CSVReference = fbS.GetReferenceFromUrl($"gs://ice-app-12.appspot.com/sessioncsv/Guid.NewGuid().csv");
var uploadTask = CSVReference.PutFileAsync(filepath);
yield return new WaitUntil(() => uploadTask.IsCompleted);
if (uploadTask.Exception != null)
Debug.LogError($"Failed to upload because uploadTask.Exception");
yield break;
var getUrlTask = CSVReference.GetDownloadUrlAsync();
yield return new WaitUntil(() => getUrlTask.IsCompleted);
if (getUrlTask.Exception != null)
Debug.LogError($"Failed to get a download url with getUrlTask.Exception");
yield break;
Debug.Log($"Download from getUrlTask.Result");
这几天我一直在努力解决这个问题。我很困惑,因为似乎问题出在 CSVReference 中,但我不明白为什么该脚本可以在我的 Mac 上正常工作,但不能在我的 iPad 上正常工作。我将不胜感激!
【问题讨论】:
【参考方案1】:不管怎样,我能够通过从 PutFileAsync() 上传函数切换到 PutBytesAsync() 来解决该错误。为此,我必须将本地数据结构从 .csv 文件更改为字节数组。进行此切换后,我可以将 .csv 文件上传到我的 Firebase 存储桶。
我仍然不明白为什么我只在 iPad 上收到 PutFileAsync() 错误。但这个解决方案目前有效。
【讨论】:
以上是关于Google Firebase iOS 构建将文件上传到 Mac 上的存储,但在 iPad 上运行时触发 StorageException的主要内容,如果未能解决你的问题,请参考以下文章
Firebase IOS Google 登录:成功登录后更改视图
利用 Firebase 和 Google App Engine 将后台逻辑添加到实时数据
iOS - 如何将 Firebase Analytics 与现有的 Google Analytics、GoogleService-Info.plist 集成
将 google firebase 分析与 iOS 操作扩展一起使用
使用 Swift Package Manager 将 Google Firebase Admob 添加到 iOS 项目 [关闭]