Intended behavior
The goal is to rework my security rules such that only an authenticated user can read and write the data of that specific user. This is based on the users UID, which is how we identify individual users (this is done from firebase authentication, so not sure what the problem is).
My database structure
My security rules are
service cloud.firestore {
match /users/{userId} {
allow read: if request.auth.uid == userId;
}
}
The error
FirebaseError: Missing or insufficient permissions
Any suggestions on what I can do here would be very much appreciated. I haven't been able to find anything applicable in other questions asked.
My Query
fbDB.collection('users').doc(user.uid).collection('practitionerClients').doc(trackingClientNameCheck).collection("sessions").doc(trackingClientNameCheck + currentTime).set({
name: trackingClientName,
timeOfSession: currentTime,
vocValues: vocValueSaved,
sudsValues: sudsValueSaved,
recallValues: recallValueSaved,
moodValues: moodValueSaved,
clientNotes: trackingClientNotes,
triggeringEventProcessed: trackingTriggeringEvent,
positiveBelief: trackingPositiveBelief,
negativeBelief: trackingNegativeBelief
}).then(function() {
console.log("Document successfully written!");
})
.catch(function(error) {
console.error("Error writing document: ", error);
});;
*My error
Error getting document: FirebaseError: Missing or insufficient permissions.
at new t (https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js:1:47216)
at t.fromRpcStatus (https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js:1:236502)
at t.fromWatchChange (https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js:1:245756)
at t.onMessage (https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js:1:189313)
at https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js:1:188114
at https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js:1:188899
at https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js:1:60566