Вы на самом деле не закрываете свою коллекцию, напротив, вы разрешаете кому-либо писать в нее.
Чтобы разрешить только самой себе писать в коллекцию, есть несколько вариантов.Вы можете использовать Admin SDK и написать небольшую программу, которая будет запускаться только с вашего компьютера.
Admin SDK игнорирует безопасность, поэтому вы можете удалить часть записи, и она будет работать только для вас.
match /mycol/{document=**} {
allow read: if request.auth.uid != null;
}
Это, вероятно, самый простой вариант, и он безопасен, если вы сохраняетеВаши учетные данные в безопасности и делают это только на доверенной машине / в сети.
Другим вариантом будет создание пользователя для себя и аутентификация с этим пользователем.Это может быть мобильное приложение, веб-приложение или приложение Node, например.Сделав это, вы можете создать настраиваемую заявку для своего пользователя и разрешить писать только пользователям с этой заявкой, например:
match /mycol/{document=**} {
allow read: if request.auth.uid != null; allow write: if request.auth.token.admin;
}
Затем вы можете установить заявки для пользователя следующим образом (из узла):
await admin.auth().setCustomUserClaims("user_user_id", { admin: true });
Еще один вариант - создание облачной функции для записи в эту коллекцию.Облачные функции используют Admin SDK, поэтому правила безопасности также не применяются, если вы не хотите их использовать, используя вместо этого клиентский SDK Javascript.Затем в облачной функции вы могли бы проверить свой ключ API и всегда вызывать URL-адрес облачной функции вместо базы данных напрямую.
Я бы выбрал первый вариант, чтобы вы могли ознакомиться сAdmin SDK, а затем при необходимости вы можете перейти к более структурированным решениям.