1

Firebaseの新しいクラウド機能を探求していますので、httpリクエストでワイルドカードを追加しようとしているときワイルドカードを無視し、新しいデータを新しい{userId}オブジェクトにプッシュします。Firebase Cloud Functions:httpリクエストでワイルドカードを使用してデータをプッシュする方法

基本的には、「今日の」オブジェクトのすべてのユーザーからデータを取り出し、「昨日の」オブジェクト(統計やプロセスのようなもの)にプッシュする関数を作成しようとしています。そのために私はthis topicをcronの例に基づいて使用しています。

Iは、すべてのユーザーのためにいくつかのデータをプッシュのアイデアを、HTTP要求によってトリガ簡単な関数の構築を開始している({にuserId}ワイルドカード)が、データは新しい{にuserId}オブジェクトに押し込まれていますワイルドカードは無視されます。

exports.addEntry = functions.https.onRequest((req, res) => { 
    const value = req.query.addValue; 
    admin.database().ref('users/{userId}').push({value}).then(snapshot => { 
    res.redirect(303, snapshot.ref); }); 
}); 

質問:この機能をすべてのユーザーにプッシュする方法を教えてください。

答えて

1

トリガーでワイルドカードを配線する構文は、データベース参照へのパスを構築するためには適用されません。

exports.addEntry = functions.https.onRequest((req, res) => { 
    const value = req.query.addValue; 
    admin.database().ref('users/'+userId).push({value}).then(snapshot => { 
    res.redirect(303, snapshot.ref); }); 
}); 

またはES6テンプレートリテラル:

exports.addEntry = functions.https.onRequest((req, res) => { 
    const value = req.query.addValue; 
    admin.database().ref(`users/${userId}`).push({value}).then(snapshot => { 
    res.redirect(303, snapshot.ref); }); 
}); 
+0

おかげで、しかし、すべてのuseIdsにデータをプッシュする方法、およびだけではなく、与えられたものがあるそこには、通常の文字列補間を使用する必要がありますか? – Denis

+0

これを行うには、ユーザーをループし、それぞれに同じ値をプッシュします。 –

関連する問題