Ich habe meine App mit Lesen und Schreiben mit weit geöffneten Berechtigungen arbeiten lassen und jetzt schließe ich sie ab. Meine App liest und schreibt jedoch nicht. Ich erhalte die Berechtigung verweigert, obwohl der Simulator der Firebase-Regeln besagt, dass meine Regeln für einen authentifizierten Facebook-Benutzer, dessen UID ich von einem erfolgreichen Firebase signInWithProvider
erhalten habe, in Ordnung sind. Was vermisse ich?Erlangung der Berechtigung zum Lesen und Schreiben verweigert
{
"rules": {
"items": {
"$uid": {
// user must match the authenticated user
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
Dies ist meine Datenstruktur:
my-firebase-app
-items: {
-<uid123> : [
{label:'apple'},
{label:'banana'}
]
-<uid456> : [
{label:'pear'},
{label:'cherry'}
]
}
- bis ich mich abmelde in Feuerbasis nach Facebook-Auth, indem Sie,
firestack.auth.signInWithProvider(provider, facebookAccessToken, '')
, die mir Objekt einschließlich uid mein Benutzer gibt
- ich
/items/uid123
schieben und Holen Sie sich eine Artikel-ID,333
- Ich habe den Artikel
{label:'apple'}
für die neue ID (333) unter/items/uid123/333
- abonniere ich die Sammlung von Gegenständen bei
/items/uid123
durch die mit dem Web-sdk tun:itemsRef.child(uid).on('value', (snapshot) => .....
Mein Satz Anruf aussieht,
const newPostRef = itemsRef.child(uid).push(); newPostRef.set(itemWithID)
set
Versprechen mit Erlaubnis verweigert werden abgelehnt Error.
All die Dinge, über Arbeit in Ordnung, wenn meine .read
und .write
sind einfach zu true
gesetzt, was führt mich meine Syntax oder Struktur zu denken, gerade weg def in den Regeln ist. Würde etwas Input lieben.
Bitte teilen Sie den minimalen Code, der das Problem auslöst. –
Vielen Dank @FrankvanPuffelen, ich habe meine Frage mit mehr Details aktualisiert –
Ich verstehe immer noch nicht, welcher Code das Problem auslöst. Ist es das 'on()', das die 'Berechtigung verweigert' auslöst? Beachten Sie auch, dass wir nicht sehen können, wie die Authentifizierung hier abläuft. Statt einer Aufzählungsliste, wie Sie glauben, dass sie ausgeführt wird, teilen Sie ein [einzelnes Snippet, das (wenn es ausgeführt wird) den Fehler auslöst] (http://stackoverflow.com/help/mcve). Es kann hilfreich sein, wenn Sie versuchen, das Problem in einem jsbin zu reproduzieren (obwohl das bedeuten würde, ohne Feuerschein zu reproduzieren). –