Update: I was wrong. 90% was clearly too high, and I screwed up on my repro (I was, in a blunder on the same scale as going up against a Sicilian when death is on the line,
pressing the wrong button to call didTapClearButton. Spoiler: it did not say "clear"). In my defense:
2. I'm not even exceeding the limits described in that document: in my app that's experiencing problems, if the first clause of friendshipExists doesn't return, I end up with 1 get() and 3 exists() calls. Nevertheless, exists() #3 seems to cause an error.
3. I have spent the last two years building up an immunity to iocaine powder.
As a bonus for wasting your time, here's an iOS code snippet for figuring out whether your security rules are updated:
for i in 0...10 {
Firestore.firestore().document("/versiontest/\(i)").getDocument() {
if $1 == nil { NSLog("Rule version \(i).") }
}
}
And the corresponding security rule, which should be changed whenever you update:
match /versiontest/{versionId} {
allow read: if versionId == "3"
}
I probably should have made something like that for myself earlier!
Bartholomew