facebook twitter hatena line email

「Gcp/Firebase/CloudFunctions/Realtimedatabaseトリガー」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(functionsでrealtimedatabaseのトリガーを作る)
(functionsでrealtimedatabaseのトリガーを作る)
行2: 行2:
 
公式:https://firebase.google.com/docs/functions/database-events?hl=ja
 
公式:https://firebase.google.com/docs/functions/database-events?hl=ja
  
新規追加サンプル
+
===新規追加サンプル===
 
<pre>
 
<pre>
 
exports.makeUppercase = functions.database.ref('/Rooms/{pushId}/original')
 
exports.makeUppercase = functions.database.ref('/Rooms/{pushId}/original')
行13: 行13:
 
例:"/Rooms/111/original"を、追加すると"/Rooms/111/uppercase"が、追加される。
 
例:"/Rooms/111/original"を、追加すると"/Rooms/111/uppercase"が、追加される。
  
追加更新削除サンプル
+
===追加更新削除サンプル===
 
<pre>
 
<pre>
 
exports.makeUppercase = functions.database.ref('/Room/{pushId}/original2')
 
exports.makeUppercase = functions.database.ref('/Room/{pushId}/original2')
行30: 行30:
 
</pre>
 
</pre>
  
件数取得サンプル
+
===件数取得サンプル===
 
https://www.sukerou.com/2019/07/firebase-database.html
 
https://www.sukerou.com/2019/07/firebase-database.html
  

2021年10月8日 (金) 12:42時点における版

functionsでrealtimedatabaseのトリガーを作る

公式:https://firebase.google.com/docs/functions/database-events?hl=ja

新規追加サンプル

exports.makeUppercase = functions.database.ref('/Rooms/{pushId}/original')
    .onCreate((snapshot, context) => {
      const original = snapshot.val();
      functions.logger.log('Uppercasing', context.params.pushId, original);
      const uppercase = original;
      return snapshot.ref.parent.child('uppercase').set(uppercase);

例:"/Rooms/111/original"を、追加すると"/Rooms/111/uppercase"が、追加される。

追加更新削除サンプル

exports.makeUppercase = functions.database.ref('/Room/{pushId}/original2')
    .onWrite((change, context) => {
      if (change.before.exists()) {
        return null;
      }
      if (!change.after.exists()) {
        return null;
      }
      const original = change.after.val();
      console.log('Uppercasing', context.params.pushId, original);
      const uppercase = original;
      return change.after.ref.parent.child('uppercase').set(uppercase);
    });

件数取得サンプル

https://www.sukerou.com/2019/07/firebase-database.html

"TypeError: Cannot read property 'name' of undefined at RefBuilder.changeConstructor"エラーが出る場合

cd functions
npm install firebase-functions@latest
vi functions/package.json

firebase-functionsを3.13.1以上にする。

参考:https://github.com/firebase/firebase-functions/issues/447