【问题标题】:A simple cloud function to write to database一个简单的云函数写入数据库
【发布时间】:2018-07-24 04:34:53
【问题描述】:

我正在尝试编写我的第一个云函数。这是我部署的功能。

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

exports.onMsgAdded = functions.database.ref('/users/{uid}/messages/{to_uid}/{msg}').onCreate((snap, context) =>{
    const data = snap.val();
    const msgRoot = admin.database().ref('/users/' + context.params.to_uid + '/messages/' + context.params.uid);
    return msgRoot.set(data);
});

问题是这完全没有任何作用。正如我在功能仪表板中看到的那样,它正在被触发,但写入没有被执行。

这里我的数据库中只有一个用户。创建消息后,我想将其复制到 to_uid 的用户“消息”节点。

【问题讨论】:

  • 您是否尝试过在函数中记录所有不同的值以查看它们是否符合您的预期?
  • 是的。底部的屏幕截图是我在部署函数后尝试运行它,什么都没有。
  • 我明白了 :-|太简单。谢谢道格

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


【解决方案1】:

我忘记添加 admin.initializeApp(functions.config().firebase);

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp(functions.config().firebase);

exports.onMsgAdded = functions.database.ref('/users/{uid}/messages/{to_uid}/{msg}').onCreate((snap, context) =>{
    const data = snap.val();
    const msgRoot = admin.database().ref('/users/' + context.params.to_uid + '/messages/' + context.params.uid);
    return msgRoot.set(data);
});

DERP

【讨论】:

  • 你应该更新你的firebase函数和管理员并使用admin.initializeApp()而不是admin.initializeApp(functions.config().firebase)
猜你喜欢
  • 1970-01-01
  • 2016-04-13
  • 1970-01-01
  • 2019-03-30
  • 2023-03-31
  • 1970-01-01
  • 2016-05-28
  • 2020-03-04
  • 2021-12-20
相关资源
最近更新 更多