Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Firebase和Unity(C#):无法从bucket下载png 规格 问题_C#_Firebase_Unity3d_Firebase Realtime Database_Download - Fatal编程技术网

Google Firebase和Unity(C#):无法从bucket下载png 规格 问题

Google Firebase和Unity(C#):无法从bucket下载png 规格 问题,c#,firebase,unity3d,firebase-realtime-database,download,C#,Firebase,Unity3d,Firebase Realtime Database,Download,我在设置从存储器下载图片的系统时遇到问题。我不是数据库方面的专家,但我想尝试一下,只是想了解它是如何完成的。 我发现Firebase在实时数据库中存储元数据非常有用,即使对于像我这样的入门级程序员来说也很容易实现 问题是,我正试图从存储中的文件夹下载.png文件,但我无法找到该文件是否已实际下载或在下载过程中丢失。我在控制台中没有收到任何错误,但是当我打开文件应该在其中的文件夹时,它是空的 代码 这不适用于您的原因可能有很多,包括: 安全规则设置不正确 文件路径不正确 您在错误的平台上测试它(

我在设置从存储器下载图片的系统时遇到问题。我不是数据库方面的专家,但我想尝试一下,只是想了解它是如何完成的。 我发现Firebase在实时数据库中存储元数据非常有用,即使对于像我这样的入门级程序员来说也很容易实现

问题是,我正试图从存储中的文件夹下载
.png
文件,但我无法找到该文件是否已实际下载或在下载过程中丢失。我在控制台中没有收到任何错误,但是当我打开文件应该在其中的文件夹时,它是空的

代码
这不适用于您的原因可能有很多,包括:

  • 安全规则设置不正确
  • 文件路径不正确
  • 您在错误的平台上测试它(Firebase在编辑器中无法正常工作)
  • 您的设备正在阻止连接
  • 等等
要获取错误消息,您需要记录它们:

private SimpleFirebaseUnity.Firebase firebaseDatabase;
private FirebaseQueue firebaseQueue;
private FirebaseStorage firebaseStorage;
private StorageReference m_storage_ref;

// Setup refernece to database and storage
void SetupReferences()
{
    // Get a reference to the database service, using SimpleFirebase plugin
    firebaseDatabase = SimpleFirebaseUnity.Firebase.CreateNew(FIREBASE_LINK, FIREBASE_SECRET);

    // Get a reference to the storage service, using the default Firebase App
    firebaseStorage = FirebaseStorage.DefaultInstance;

    // Create a storage reference from our storage service
    m_storage_ref = firebaseStorage.GetReferenceFromUrl(STORAGE_LINK);

    // Create a queue, using SimpleFirebase
    firebaseQueue = new FirebaseQueue(true, 3, 1f);
}

// ...

IEnumerator DownloadImage(string address, string fileName)
{
    var local_path = Application.persistentDataPath + THUMBNAILS_PATH;
    var content_ref = m_storage_ref.Child(THUMBNAILS_PATH + fileName + ".png");

    content_ref.GetFileAsync(local_path).ContinueWith(task => {
        if (!task.IsFaulted && !task.IsCanceled)
        {
            Debug.Log("File downloaded.");
        }
    });

    yield return null;
}
请记住,在编辑器中测试它可能不起作用

private SimpleFirebaseUnity.Firebase firebaseDatabase;
private FirebaseQueue firebaseQueue;
private FirebaseStorage firebaseStorage;
private StorageReference m_storage_ref;

// Setup refernece to database and storage
void SetupReferences()
{
    // Get a reference to the database service, using SimpleFirebase plugin
    firebaseDatabase = SimpleFirebaseUnity.Firebase.CreateNew(FIREBASE_LINK, FIREBASE_SECRET);

    // Get a reference to the storage service, using the default Firebase App
    firebaseStorage = FirebaseStorage.DefaultInstance;

    // Create a storage reference from our storage service
    m_storage_ref = firebaseStorage.GetReferenceFromUrl(STORAGE_LINK);

    // Create a queue, using SimpleFirebase
    firebaseQueue = new FirebaseQueue(true, 3, 1f);
}

// ...

IEnumerator DownloadImage(string address, string fileName)
{
    var local_path = Application.persistentDataPath + THUMBNAILS_PATH;
    var content_ref = m_storage_ref.Child(THUMBNAILS_PATH + fileName + ".png");

    content_ref.GetFileAsync(local_path).ContinueWith(task => {
        if (!task.IsFaulted && !task.IsCanceled)
        {
            Debug.Log("File downloaded.");
        }
    });

    yield return null;
}
IEnumerator DownloadImage(string address, string fileName)
{
    var local_path = Application.persistentDataPath + THUMBNAILS_PATH;
    var content_ref = m_storage_ref.Child(THUMBNAILS_PATH + fileName + ".png");

    content_ref.GetFileAsync(local_path).ContinueWith(task => {
        if (!task.IsFaulted && !task.IsCanceled)
        {
            Debug.Log("File downloaded.");
        }
        else
        {
            Debug.Log(task.Exception.ToString());
        }
    });

    yield return null;
}