2017-06-15 98 views
3

我試圖將一個簡單的函數部署到Firebase,但我遇到了一些困難。每當我嘗試在引用上使用.once時,Firebase都會告訴我它不是函數。這裏是我的代碼Firebase函數錯誤:.once不是函數

exports.testFunction = functions.database.ref('/Rooms/{firstID}/{pushId}/On').onWrite(event => { 
    const value = event.data.val(); 
    var ref = functions.database.ref(roomNum); 
    return ref.once('value').then(snapshot => { 
    console.log(snapshot.numChildren); 
    return true; 
    }); }); 

我也曾嘗試以下操作:

firebaseRef.once('value', function(dataSnapshot) { 
    console.log(snapshot.numChildren); 
}); 

似乎沒有任何工作。有沒有人知道修復或從ref/snapshot獲取兒童人數的不同方法?

謝謝。

回答

5

functions.database.ref是一個與您以前在客戶端上使用的對象不同的對象。它的唯一目的是使用它的唯一功能來收聽寫入,onWrite

您可以通過event參數獲得預期的參考值。

var ref = event.data.ref

這是你在onWrite指定的路徑參考。

如果你想根參考:

var rootRef = event.data.ref.root

延伸閱讀:https://firebase.google.com/docs/reference/functions/functions.database

+0

是的,這非常有意義。謝謝。 – ESchlotter