今天需要為 Firebase 增加刪除功能,程式碼如下:
var admin = require('firebase-admin'); 2 var config = require('./config.json'); 3 4 var defaultAppConfig = { 5 credential: admin.credential.cert(config.firebase.cert), 6 databaseURL: config.firebase.databaseURL 7 }; 8
var defaultAppName = 'GoPeople-NodeJS-Admin';11 var defaultApp = admin.initializeApp(defaultAppConfig, defaultAppName);12 13 var signaturesRef = defaultApp.database().ref('signatures');14 15 1 orderByChild("isChecked").equalTo(true).limitToLast(10).once("value")16 .then(function(snaps. var key = childSnapshot.key ;20 var childData = childSnapshot.val();21 22 var now = new Date();23 var now = new Date();23 …ate date);24 var dayDiff = parseInt((現在- 日期) / (1000 * 60 * 60 * 24)); // 天diff25 26 if(dayDiff > 30){27 console.log(key);29 console.log(dayDiff); console.log(error ? ("哦哦!" + error) : "成功!");31 }); console.log(key);34 console.log(dayDiff);35 );37 38 });
Firebase 修改節點:
#function finishJobSync(jobGuid) { Ref = defaultApp.database().ref('signatures').child(jobGuid);
signaturesRef.update({isChecked: true},function(error) { if (error) {#error . error) );
} else {
logger.info('Job ' + jobGuid + '簽章已同步。 ');
##Firebase監聽:
signaturesRef.orderByChild("isChecked").equalTo( false) .on("child_added", function(snapshot, prevChildKey) { // TODO: });
##admin.database.DataSnapshot
>> key
// 假設資料庫中有下列資料:{ "name": { "first": "Ada", "last": "Lovelace"
}var ref = admin.database().ref("users/ada");
ref.once("value")
.then(function(snapshot) { var key = snapshot.key ; // "ada"
var childKey = snapshot.child("name/last").key; // "last"
});
##var rootRef = admin.database().ref();rootRef.once("value")
.then(function(snapshot) { var key = snapshot. key ; // null var childKey = snapshot.child("users/ada").key; // "ada"
});
>> ;存在
// 假設資料庫中有以下資料:{ "name": { "first": "Ada", "last": "Lovelace"
}
}// 測試是否存在DataSnapshot 中的某一些鍵var ref = admin.database().ref("users/ada");
ref.once("value")
.then(function(snapshot) { var a = snapshot.存在() ; // true
var b = snapshot.child("name").exists(); // true
var c = snapshot.child("name/first").exists(); // true
var d = snapshot.child("name/middle").exists(); // false
});
# >> foreach
// 假設資料庫中有下列資料:{ "users": { "ada": { "first": "Ada", "last" : "Lovelace"
}, "alan": { "first": "Alan", "last": "Turing"
}
}
}//pach( ) 方法進行排序。 // 提供給 forEach() 的回呼將與 DataSnapshot // 對於每個子程序同步呼叫:var query = admin.database().ref("users").orderByKey();
query.once(" value ")
.then(function(snapshot) {
snapshot.forEach(function(childSnapshot) { // key 第一次為「ada」,第二次為「alan」
// key 第一次為「ada」,第二次為「alan」
.key;
##>> hasChildren
// 假設資料庫中有下列資料:{ "name": { "first": "Ada", "last": " Lovelace" }}var ref = admin.database().ref("users/ada");
ref.once("value") .then(function(snapshot) { var a = snapshot.hasChildren(); // true
var b = snapshot.child("name").hasChildren(); // true
});
##>> numChildren
// 假設資料庫中有下列資料:{ "name": { "first": "Ada", "last": " Lovelace" }}var ref = admin.database().ref("users/ada");
ref.once("value") .then(function(snapshot) { var a = snapshot.numChildren(); // 1 ("name")
var b = snapshot.child("name").numChildren(); // 2 ("first", "last")
});
admin.database.Query
#> > orderByChild
##var ref = admin.database().ref("恐龍");
console.log(snapshot.key + " was " + snapshot.val().height + "米高");
});>> orderByKey
var ref = admin.database().ref("恐龍");
ref.orderByKey().on("child_added", function(snapshot) {
控制台.log(snapshot.key);
>> orderByValue
var ScoresRef = admin.database().ref("scores");
scoresRef.orderByValue().limitToLast(3).on("value", function(snapshot) {
snapshot.forEach(function(data) {
});} ) ;
##
#>>> startAt, endAt
// 找出所有高度至少三公尺的恐龍。 #ref.orderByChild("height").startAt(3).on("child_added", function(snapshot) {
console.log(snapshot.key)});// 找出所有恐龍按字典順序,其名稱位於翼手龍之前。 snapshot) { console.log(snapshot.key);});
>>> limitToFirst、limitToLast
// 找到兩隻最矮的恐龍。 ", function(snapshot) { // 這將被呼叫兩次(除非資料庫中的恐龍少於兩個
)。
// 如果其中之一,它也會再次觸發前兩隻恐龍
// 從資料集中刪除,因為新的恐龍現在將是第二個
// 最短的。只最重的恐龍。 //此回呼將被觸發兩次,除非資料庫中儲存的恐龍數量少於兩隻。 snapshot.key);
});
# >> equalTo
// 找出所有高度剛好為 25 公尺的恐龍。 ).on("child_added", function(snapshot) {
console.log(snapshot.key);
#>> isEqual
var rootRef = admin.database().ref();var usersRef = rootRef.child("users");
usersRef.isEqual(rootRef); // falseusersRef.isEqual(rootRef.child("users")); // trueusersRef.parent.isEqual(rootRef); // true
var rootRef = admin.database().ref();var usersRef = rootRef.child("users");var usersQuery = usersRef .limitToLast(10);
##>> toString
// 在根 Firebase 參考上呼叫 toString() 傳回其 // 資料儲存在資料庫中的 URL:var rootRef = admin.database () .ref();var rootUrl = rootRef.toString();// rootUrl === "https://sample-app.firebaseio.com/".// 在更深的Firebase 參考處呼叫toString() 回傳//資料庫中的深層路徑的URL:var adaRef = rootRef.child('users/ada');var adaURL = adaRef.toString();// adaURL === "https://sample-app.firebaseio .com/ users/ada".
以上是Firebase相關操作的實例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!