Правила базы данных Firebase, которые запрещают любую запись, но разрешают только удаление? - PullRequest
0 голосов
/ 18 февраля 2020

Есть ли возможность создать правило, которое запрещает любые записи или обновления, но разрешает только удаление узлов?

Мой пример - я хочу создать купонные коды для игры, поэтому, если я создаю купон в базу данных, каждый сможет прочитать и получить к ней доступ, но когда первый человек будет использовать его в игре, он также удалит этот купон из базы данных. Я могу создать это, но в этом случае каждый может также создавать новые узлы в базе данных, и я не хочу этого, потому что каждый может полностью спамить мою базу.

Надеюсь, кто-нибудь поймет, что я имею в виду.

Редактировать: я работаю в режиме реального времени дБ

С уважением

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

те же результаты, не могу удалить, я пробовал много комбинаций и никто не работает, и поэтому я просто спрашиваю здесь, может быть, есть другой вариант. если запись включена, я удаляю узел после того, как получу его:

private void PromoCodeDB()
{
    RestClient.Get<PromoCodeData>(codesDbURL + codeTextNum.text + ".json").Then(response =>
    {
        promoCodes = response;
        UpdateGold();
        Debug.Log("Code accepted");

        DeletePromoCodeDB();

    }).Catch(error =>
    {
        Debug.Log("Code does not exist.");
    });
}

private void DeletePromoCodeDB()
{
    RestClient.Delete(codesDbURL + codeTextNum.text + ".json").Then(response => {
        Debug.Log("Promo code deleted");
    }).Catch(error =>
    {
        Debug.Log("Cannot be deleted");
    });
}
0 голосов
/ 18 февраля 2020

Чтобы разрешить запись исходных данных и удаление данных, но не обновлять их:

"(!data.exists() &&  newData.exists()) ||
 ( data.exists() && !newData.exists())"
...