0

最初に作成されたデータと削除されたデータを区別したい。 Firebaseからのコードを使用して - 私:firebaseのクラウド機能 - データの削除または追加

if (event.data.previous.exists()) { 
    return; 
    } 
    // Exit when the data is deleted. 
    if (!event.data.exists()) { 
    return; 
    } 

しかし、それは動作しません。使用中の

    • fruitID
    • ID:fruitID

私はときに、データのコードを使用したい - 私は、次のように構成されたデータベースを聴いデータが作成されると、フルーツが追加されるときに削除され、別のコードが作成されます。

データが削除されるとき

if (event.data.previous.exists()){ 
} 

で一部のみが常に実行され、指定されたコードを使用します。

提案がありますか?

ありがとうございました。

+0

を使用して関数がこのことについて考えるために容易になる可能性また、与えられた入力と出力でどのように動作しないのかについての説明と一緒に –

+0

リスナーを適用しているものも表示してください。 '/ fruits/{fruidID}/id'や親ノード'/fruits/'のような子ノードを聞いていますか? – sketchthat

答えて

0

クラウド関数には、この特定のワークフローで使用できる新しいトリガがあります。

onWrite()リアルタイムデータベースでデータが作成、破棄、または変更されたときにトリガされます。

onCreate()リアルタイムデータベースに新しいデータが作成されたときにトリガされます。

onUpdate()リアルタイムデータベースでデータが更新されたときにトリガされます。

onDelete()リアルタイムデータベースからデータが削除されたときにトリガされます。

onDeleteonCreateという2つのトリガーを作成できます。あなたが1つの関数にそれを作成したい場合は、コードの完全かつ最小限のサンプル(全体の機能)を与えた場合

そうでなければ、セットアップonWrite

export listener = functions.database.ref('/fruit/{fruitId}').onWrite(event => { 
    if (!event.data.previous.exists()) { 
    // Created Event - Previous data doesn't exist. 
    } else if (!event.data.exists()) { 
    // Deleted Event - Data doesn't exist. 
    } else { 
    // Update 
    } 
} 
関連する問題