Firebase的云功能 - 如果值太长,如何停止写入实时数据库

时间:2017-08-09 15:08:59

标签: firebase firebase-realtime-database google-cloud-functions

如果值/字符串太长,如何阻止写入firebase数据库?

例如:如果我有这个数据集

  • userProducts
    • 用户id
    • 的productID
      • 名称

我不想将此产品添加到数据库中,如果该名称'超过10个字符。我怎么能这样做?

像这样:?

exports.preventNameTooLong = functions.database.ref('/userProducts/{userID}/')
.onWrite(event => {
    // Grab the current value of what was written to the Realtime Database.
    const product = event.data.val();
    if(product.name.length > 10){
        return;
    }else{
        return event.data.ref;
    }
});

或者这段代码完全错了吗?

1 个答案:

答案 0 :(得分:3)

使用实时数据库规则进行更快速验证:https://firebase.google.com/docs/database/security/securing-data

在您的情况下,请添加以下规则:

".validate": "newData.isString() && newData.val().length < 10"

这应该包含在您的实时数据库规则中,因此不在您的函数中。这样,用户甚至无法写入您插入规则的路径。