2017-06-20 99 views
2

我有一個非常基本的iOS/Swift應用程序,可將視頻文件上傳到Firebase。儘管我在403錯誤中發現了其他帖子,但它們似乎都是系統權限問題。Firebase在某些文件(iOS/Swift)上隨機拋出403「權限被拒絕」

我發佈了這個線程,因爲99%的時間文件上傳並獲得了預期的權限。我沒有花哨的(或任何)在應用程序或firebase的權限設置,但偶爾有一個文件返回403.

只是爲了確保我沒有追逐我的尾巴,我改變了我的規則(基於https://groups.google.com/forum/#!topic/firebase-talk/oXyspJwlgU0)到完全許可「真」。該特定文件仍爲403。

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

我有一種預感,也許當一個文件沒有上傳所有的方式出了差錯。不知怎的,它變得腐敗,但拋出一個403而不是? (當然在黑暗中刺傷)。

任何想法或類似的問題呢?

回答

1

也許你已經解決了這個問題,但我想分享一下我在找到一個類似案例時發現的問題。

我正在編寫一個使用Firebase存儲上傳和下載文件的混合應用程序。出於測試目的,我沒有使用身份驗證,一切工作正常。然後我實現了身份驗證,數據庫規則和存儲規則,並且一切與數據庫配合良好,但與Storage無關。 隨着存儲規則:

service firebase.storage { 
    match /b/....myBucket.../o { 
    match /{allPaths=**} { 
     allow read, write: if request.auth != null 
    } 
    } 
} 

我總是收到403響應getDownloadURL()函數拒絕「權限」的消息,這些文件不會被裝載。我嘗試匿名和電子郵件/密碼認證,沒有發生任何事情。然後,我嘗試了一些規則上的變化,但在最好的情況下,我收到了隨機的403「拒絕權限」消息,有時會加載文件,有時候不會。

我終於解決了這個問題。我使用的是AngularFire的認證功能:$ firebaseAuth(),$ authAnonymously()和$ authWithPassword(),但是對於存儲,我使用的是標準的firebase.storage()函數。然後,我將Auth更改爲標準函數:firebase.auth(),signInAnonymously()和signInWithEmailAndPassword(),並且所有上傳和下載都開始正常工作。

希望這有助於某人。