В отношениях между / users / x и / users / x / public нет ничего такого, что затрудняло бы их отдельную защиту.Это совершенно разные коллекции и могут быть защищены отдельно без конфликтов.Единственный раз, когда у вас возникнет проблема, это если вы решите использовать подстановочный знак глобуса, который обычно не используется.
Если вы не укажете какое-либо правило для / users, тогда доступ не будет разрешен.Правило для вашего первого запроса - просто не писать правила.(Если вы не хотите, чтобы пользователи читали свой отдельный документ, просто напишите это правило, и оно все равно также не позволит никому получить список пользователей.)
Правило для вашего второго запроса можно включить для всех, простозаписав:
match /users/{uid}/public/{id} {
allow read;
}
Это правило не повлияет сразу на документы в / users, поскольку они не соответствуют шаблону.И любое другое правило, которое соответствует / users / {uid}, не повлияет ни на одну вложенную коллекцию по той же причине - нет соответствия.