2017-09-24 1 views
0

firebase関数のトリガーデータに関係のないデータベース要素にアクセスできる方法を探しています。 私は他の要素に(...)のものを設定することができますが、残念ながら、私はちょうど要素から値を読み取ることができない、例えば、これは動作しません。見ての通り:Firebase関数のアクセスに関連しないデータ

event.data.adminRef.root.child('bettings/'+matchId+'/begin_at').val() 

私が知っています以下のようであるそれらのものを得るために「適切な方法」、:

var match = event.data.adminRef.root.child('bettings/' + matchId + '/begin_at'); 
match.once('value',function(snapshot){ 
    var alma = snapshot.val(); 
    console.log('alma val'); 
    console.log(alma); 
}); 

しかし、私はそのようなコードに私は私の現在の範囲外の何かを必要とするすべての時間を書くより良い/簡単な方法があると願っています。

更新:How to read any data from database on its write trigger on one of its child in firebase functions?の複製ではありません! 私は約....を知っています。私は約束で値にアクセスすることができますが、もっと速い方法が必要です。なぜなら、時には約10秒かかるからです。時間内に応答を得る!ここで

+0

あなたの質問では、追加の情報、価値ある一方で、最初の質問とは無関係です。あなたは*私は要素の値を読み取ることはできません*とリンクされた投稿は重複していると述べた。パフォーマンスに問題がある場合、それは非常に異なる質問になります。副作用として、Firebaseの読み込みに10秒かかっている場合は、Firebaseと無関係の可能性が高いものがあります。 – Jay

答えて

0

を使用すると、特定のデータベース・ノードからデータにアクセスし、値jobownerでタスクを実行する例を次に示します。

let jobRef = admin.database().ref(`/jobs/${jobid}`); 
const jo = jobRef.child("owner").once('value'); 
return Promise.all([jo]).then(r => { 
    const jobowner = r[0]; 
    const promises = []; 
    let key = admin.database().ref(`/jobowners/${jobowner}`).set({ 
    value: 'test', 
    other: false 
    }); 
    promises.push(room); 
    return Promise.all(promises); 
}); 
+0

答えに感謝しますが、あなたはまだ.onceと約束を使用しています...ここでの問題は、スピードです。この約束を待っていると、約10秒かかります。 – Colosh

関連する問題