【问题标题】:Firebase Database Functions RulesFirebase 数据库函数规则
【发布时间】:2018-07-09 17:04:54
【问题描述】:

尝试添加一个简单的触发器,以便在写入另一个表时将时间戳写入另一个表。问题是数据来自一个 JSON 文件,它是一个 Json 对象数组。比这更复杂,但这里是伪数据。

category 
   - 0 
       - name: "Name0"
       - dsiplayname: "Name of Obj 0"
   - 1
       - name: "Name1"
       - dsiplayname: "Name of Obj 1"

我写的函数是这样的

'use strict';
const admin = require('firebase-admin');
admin.initializeApp();

exports.touch = functions.database.ref('/{category}').onWrite(
    (change, context) => admin.database().ref('/category_date').set(context.timestamp));

如果我使用它,那么一次写入会触发数百次时间戳。那么我该如何编写这个来触发 Edit /category/[any array item]/{any column} 还是插入?

【问题讨论】:

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


    【解决方案1】:

    您的数据库触发器中似乎有一个简单的错误,导致它触发 any 写入 any 表 - 包括您的 /category_date 表。 . 触发函数导致再次写入/category_date 表...这会再次触发该函数并导致再次写入/category_date 表...这会触发 (etc...)

    这段代码:

    functions.database.ref('/{category}').onWrite(
    

    将为 ALL 路径触发,因为您将单词 category 作为 {parameter} 而不是完全匹配。改成:

    functions.database.ref('/category/{category_index}').onWrite(
    

    甚至只是:

    functions.database.ref('/category').onWrite(
    

    这应该可以解决它。

    【讨论】:

    • 不幸的是,这不起作用,functions.database.ref('/category').onWrite( 触发器永远不会触发不确定functions.database.ref('/category/{category_index}' ).onWrite( 会起作用,因为那个无限循环似乎已经杀死了我的数据库函数配额,所以我超出了配额限制。
    猜你喜欢
    • 2018-05-29
    • 2017-07-15
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2021-01-31
    • 2016-09-16
    相关资源
    最近更新 更多