Skip to content

🐛 [rtdb, firestore, storage] permission denied errors are unhelpful #15707

Closed
@cbenhagen

Description

@cbenhagen

Whenever we get a permission denied error (due to Rules), they are unhelpful. The expectation is to see the path and operation that failed, and optionally the JSON payload that was sent

How it works today

RTDB:

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: [firebase_database/permission-denied] 
Client doesn't have permission to access the desired data.

Firestore

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: [cloud_firestore/permission-denied] 
The caller does not have permission to execute the specified operation.

Cloud Storage

FLTFirebaseStorage: An unknown error occurred while calling method Reference#getDownloadURL

Ideal outcome

RTDB:

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: [firebase_database/permission-denied] 
Client doesn't have permission to read /foo/bar/baz.

Firestore

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: [cloud_firestore/permission-denied] 
The caller does not have permission to write /foo/bar/baz with payload {"hello": "world"}

Cloud Storage

FLTFirebaseStorage: An unknown error occurred while calling method Reference#getDownloadURL 
for "gs://foo.appspot.com/foo/bar/baz.jpg"

Resources

Firestore codepaths seem to have enough context to give better error messages without a big lift

273227315-3a11ba99-ff26-4c09-b93a-cb36c06d1fc7

This is a copy of issue #11677 which was most likely closed due to a user landing on the issue through a web search and then later commenting that it was fixed when his unrelated permission issue was solved.

/cc @lukepighetti

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions