首頁 >web前端 >js教程 >Firebase相關操作的實例程式碼

Firebase相關操作的實例程式碼

零下一度
零下一度原創
2017-06-28 10:55:361583瀏覽

今天需要為 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監聽:

var簽名Ref = defaultApp.database().ref('signatures');

signaturesRef.orderByChild("isChecked").equalTo( false) .on("child_added", function(snapshot, prevChildKey) {    // TODO: });

 

 

admin.database.DataSnapshot# 

 

##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"
 });



>> child

##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

   var c = snapshot.child("name/first") .hasChildren( ); // false

 });






##>> 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")

   var c = snapshot.child("name/first").numChildren(); // 0

 });

admin.database.Query


#> > orderByChild

##var ref = admin.database().ref("恐龍");

ref.orderByChild("height").on("child_added", function(snapshot) {

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) {

   console.log("" + data.key + " 分數為" + data.val());

 });} ) ;

## 



#>>> 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);

usersQuery.isEqual(usersRef);  // falseusersQuery.isEqual(usersRef.limitToLast(10));  // trueusersQuery.isEqual(rootRef.limitToLast(10));  // falseusersQuery.isEqual(usersRef.orderByKey().limitToLast(10));  // false





##>> 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn