Home > Web Front-end > JS Tutorial > body text

Firebase related operations and code examples

巴扎黑
Release: 2017-06-27 09:15:11
Original
1353 people have browsed it

Today we need to add the deletion function to Firebase. The code is simplified as follows:

 1 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  9 10 var defaultAppName = 'GoPeople-NodeJS-Admin';11 var defaultApp = admin.initializeApp(defaultAppConfig, defaultAppName);12 13 var signaturesRef = defaultApp.database().ref('signatures');14 15     signaturesRef.orderByChild("isChecked").equalTo(true).limitToLast(10).once("value")16         .then(function(snapshot) {17 18             snapshot.forEach(function(childSnapshot) {19                 var key = childSnapshot.key;20                 var childData = childSnapshot.val();21 22                 var now = new Date();23                 var date = new Date(childData.date);24                 var dayDiff = parseInt((now - date) / (1000 * 60 * 60 * 24)); // day diff25 26                 if(dayDiff >30){27                     signaturesRef.child(key).remove(function(error) {28                         console.log(key);29                         console.log(dayDiff);30                         console.log(error ? ("Uh oh! " + error) : "Success!");31                     });32                 }else{33                     console.log(key);34                     console.log(dayDiff);35                 }36             });37 38         });
Copy after login

Firebase modification node:

function finishJobSync(jobGuid) {var signaturesRef = defaultApp.database().ref('signatures').child(jobGuid);
    signaturesRef.update({isChecked: true},function(error) {if (error) {
            logger.error(error);
        } else {
            logger.info('Job ' + jobGuid + ' signature has been synced.');
        }
    });
}
Copy after login

Firebase listening:

var signaturesRef = defaultApp.database().ref('signatures');

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

admin.database.DataSnapshot

>> key

// Assume we have the following data in the Database:{  "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"
  });
Copy after login

>> child

var rootRef = admin.database().ref();
rootRef.once("value")
  .then(function(snapshot) {var key = snapshot.key; // nullvar childKey = snapshot.child("users/ada").key; // "ada"
  });
Copy after login

>> exists

// Assume we have the following data in the Database:{  "name": {"first": "Ada","last": "Lovelace"
  }
}// Test for the existence of certain keys within a DataSnapshotvar ref = admin.database().ref("users/ada");
ref.once("value")
  .then(function(snapshot) {var a = snapshot.exists();  // truevar b = snapshot.child("name").exists(); // truevar c = snapshot.child("name/first").exists(); // truevar d = snapshot.child("name/middle").exists(); // false
  });
Copy after login

>> foreach

// Assume we have the following data in the Database:{  "users": {"ada": {      "first": "Ada",      "last": "Lovelace"},"alan": {      "first": "Alan",      "last": "Turing"}
  }
}// Loop through users in order with the forEach() method. The callback// provided to forEach() will be called synchronously with a DataSnapshot// for each child:var query = admin.database().ref("users").orderByKey();
query.once("value")
  .then(function(snapshot) {
    snapshot.forEach(function(childSnapshot) {      // key will be "ada" the first time and "alan" the second time  var key = childSnapshot.key;      // childData will be the actual contents of the child  var childData = childSnapshot.val();
  });
});
Copy after login

>> hasChildren

// Assume we have the following data in the Database:{  "name": {"first": "Ada","last": "Lovelace"
  }
}var ref = admin.database().ref("users/ada");
ref.once("value")
  .then(function(snapshot) {var a = snapshot.hasChildren(); // truevar b = snapshot.child("name").hasChildren(); // truevar c = snapshot.child("name/first").hasChildren(); // false
  });
Copy after login

>> numChildren

// Assume we have the following data in the Database:{  "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
  });
Copy after login

admin.database.Query

>> startAt, endAt

// Find all dinosaurs that are at least three meters tall.var ref = admin.database().ref("dinosaurs");
ref.orderByChild("height").startAt(3).on("child_added", function(snapshot) {
  console.log(snapshot.key)
});// Find all dinosaurs whose names come before Pterodactyl lexicographically.var ref = admin.database().ref("dinosaurs");
ref.orderByKey().endAt("pterodactyl").on("child_added", function(snapshot) {
  console.log(snapshot.key);
});
Copy after login

>> ; limitToFirst, limitToLast

// Find the two shortest dinosaurs.var ref = admin.database().ref("dinosaurs");
ref.orderByChild("height").limitToFirst(2).on("child_added", function(snapshot) {  // This will be called exactly two times (unless there are less than two
  // dinosaurs in the Database).

  // It will also get fired again if one of the first two dinosaurs is
  // removed from the data set, as a new dinosaur will now be the second
  // shortest.  console.log(snapshot.key);
});// Find the two heaviest dinosaurs.var ref = admin.database().ref("dinosaurs");
ref.orderByChild("weight").limitToLast(2).on("child_added", function(snapshot) {  // This callback will be triggered exactly two times, unless there are
  // fewer than two dinosaurs stored in the Database. It will also get fired
  // for every new, heavier dinosaur that gets added to the data set.  console.log(snapshot.key);
});
Copy after login

……

The above is the detailed content of Firebase related operations and code examples. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template