gpt4 book ai didi

Firebase 存储 SDK 在 Unity Web Build 中不起作用

转载 作者:行者123 更新时间:2023-12-05 02:59:12 24 4
gpt4 key购买 nike

我正在开发一个使用 Firebase 存储在运行时下载一些资源的项目。

问题是我需要生成我的应用程序的 Web 构建,当我尝试时,Unity 说找不到 Firebase 命名空间。

是否有将 Firebase 存储与 WebGL 构建一起使用的解决方法?我听说有人说使用 Firebase 的 REST API 是可能的,但我认为这不太容易,因为该项目使用下载进度和 SDK 提供的其他内容。

如果知道一些在 Unity web 构建中运行良好的其他服务(我可以在外部存储文件并在我的应用程序中下载它们),那就太好了。目前我只知道 Firebase,所以我也想知道其他引用资料。

最佳答案

不幸的是,Firebase Unity SDK目前不支持 web 目标。目前,它通过 C++ 绑定(bind)的方式即使使用 Emscripten 也会使其相对困难。我强烈建议您(以及遇到此问题的任何其他人)提交 feature request如果这是您想要的。

也就是说,如果您打算只针对网络,我建议您尝试使用 Unity's built in JavaScript bindings直接与 Web SDK 集成.即使对于 Web 目标,SDK 也会为您做很多繁重的工作,如果您只使用 REST API,您可能不会意识到自己错过了这些工作。

现在,如果您只打算使用 Cloud Storage(而不是 Firestore)并且这些文件通常是您希望公开的,您可以直接通过 public URL 下载它们。 .如果你看这个例子:

// Create a reference from an HTTPS URL
// Note that in the URL, characters are URL escaped!
var httpsReference = storage.refFromURL('https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg');

您可以通过正常的 UnityWebRequest 获取该文件如果它被标记为公众可读,则调用。所以上面可能变成:

UnityWebRequest www = UnityWebRequest.Get("https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg");
yield return www.SendWebRequest();
// ... error handling
byte[] results = www.downloadHandler.data;
// ... create a texture from the byte[] array

我希望这能有所帮助,很抱歉我没有更好的答案!

--帕特里克

关于Firebase 存储 SDK 在 Unity Web Build 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58175122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com