代码之家  ›  专栏  ›  技术社区  ›  Simon

firebase函数-删除父级

  •  0
  • Simon  · 技术社区  · 6 年前

    我不确定我做得是否正确。

    如果节点中的变量参数为真,我想删除节点的父级。

    这就是我所拥有的:

    exports.removePost = functions.database
    .ref('posts/{locationId}/{postId}/score')
    .onUpdate(async snapshot => {
    
    const score = snapshot.after.val();
    
    if(score < -4)
      return false;
    if(score >= -4)
      return snapshot.ref.parent().remove();
    
    return false;
    });
    

    所以 score 是一个整数,如果它等于或大于-4 onUpdate 我想除掉父母,所以 {postId} .

    我想这是可能的。但是当我试图在上面部署代码时,它说 ref does not exist on type 'Change<DataSnapshot>'.

    为什么这么说?

    另外,作为一个附带问题——如果我设置了firebase安全规则,那么只有具有相同安全规则的用户 uid 作为 postId UID ,上述代码是否仍然有效?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Doug Stevenson    6 年前

    onUpdate onWrite Change before after DataSnapshot ref

    exports.removePost = functions.database
    .ref('posts/{locationId}/{postId}/score')
    .onUpdate(async change => {
    
        const score = change.after.val();
    
        if (score < -4) {
            return null;
        }
        else {
            return change.after.ref.parent.remove();
        }
    });