Firestore安全规则:检查数组是否包含与用户ID不同的字符串

时间:2020-05-07 16:58:08

标签: google-cloud-firestore firebase-security

我知道如何检查数组是否包含给定的字符串(例如here的说明)。但是我的要求是不同的:我在服务器端编写了一个数组 updatedByHistoryArray 的文档,其中包含所有更新了该文档的用户的ID的历史记录,例如 [id1,id2 ,...,idn]

仅当文档已由要删除该文档的用户专门更新时,我才允许对其进行删除操作。 因此,例如,如果具有id24的用户想要删除文档,则此文档的updatedByHistoryArray必须为[id24,id24,...,id24]。

是否可以在Firestore的安全规则中实施此要求?

1 个答案:

答案 0 :(得分:1)

这听起来可能。尝试使用hasOnly()来查看列表字段是否仅包含一个用户ID。

CREATE TRIGGER verifier_date 
    BEFORE INSERT ON emprunter
    FOR EACH ROW 
    BEGIN
        if NEW.dateRetEff < NEW.dateEmpr then
            SET NEW.dateEmpr =  NEW.dateEmpr + INTERVAL 10 DAY;
        end if;
    END;