【HH原创】Firebase 相关操作及代码示例

今天需要对 Firebase 增加删除功能,代码精简如下:

 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 diff
25
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         });

Firebase 修改节点:

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.‘);
        }
    });
}

Firebase 监听:

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

signaturesRef.orderByChild("isChecked").equalTo(false).on("child_added", function(snapshot, prevChildKey) {
    // TODO:
});
时间: 2024-10-10 21:12:06

【HH原创】Firebase 相关操作及代码示例的相关文章

THINKPHP5操作数据库代码示例

表结构 CREATE TABLE `qrcode_file` ( `id` int(20) NOT NULL AUTO_INCREMENT, `active` int(1) DEFAULT '0' COMMENT '是否有效', `owner_id` int(20) DEFAULT '0' COMMENT '所有人ID', `owner_role_id` int(20) DEFAULT '0' COMMENT '所有人角色ID', `qrcode_url` varchar(500) DEFAUL

[原创]二叉树相关笔试题代码

1 //二叉树问题集: 2 //20140822 3 4 #include <iostream> 5 #include <cstdio> 6 #include <cstdlib> 7 #include <queue> 8 #include <stack> 9 #include <list> 10 using namespace std; 11 12 13 typedef int ElementType; 14 typedef stru

java目录相关操作 示例代码

package org.rui.io; import java.io.File; import java.io.FilenameFilter; import java.util.Arrays; import java.util.regex.Pattern; /** * 目录列表器 测试 * * @author lenovo * */ //Args:"C:/Users/lenovo/Pictures/screen/*\.jpg" public class DirList { public

java 线程 原子类相关操作示例 thinking in java4 目录21.3.4

java 线程  原子类相关操作示例 package org.rui.thread.volatiles; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; /** * 原子类,

【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )

[嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 ) 一. 内存 简介 1. 两大内存分类 ( 1 ) DRAM 简介 ( 定期刷新 | 速度慢 | 成本低 ) DRAM 简介 : 1.硬件描述 : DRAM 基本由一个个小电容基本原件组成, 电容的两端保留电荷; 2.优缺点描述 : ① 优点 : 成本很低, 很便宜; ② 缺点 : 需要 定期刷新数据, 速度较慢; a.

jquery操作单选钮代码示例

jquery操作单选钮代码示例:radio单选按钮是最重要的表单元素之一,下面介绍一下常用的几个jquery对radio单选按钮操作.一.取消选中: $(".theclass").each(function(){ if($(this).attr('checked')) { $(this).attr('checked',false); } }); 以上代码可以将class属性值为theclass的被选中单选按钮取消选中.二.获取被选中的单选按钮的值: var val=$('.thecla

客户端操作zookeeper服务代码示例

本文主要贴出通过zookeeper的客户端类访问zookeeper的示例,以及其它第三方更高层次的封装的客户端使用. 1.通过org.apache.zookeeper.ZooKeeper来操作zookeeper服务 有关zookeeper服务的部署参见文:http://aiilive.blog.51cto.com/1925756/1684145 下文将有代码示例展示通过编码方式在应用中启动zookeeper服务. ZooKeeper类对zookeeper服务的简单操作示例代码如下: packag

python字符串格式化输出及相关操作代码举例

字符串的格式化 Python 支持格式化字符串的输出 .尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中.在   Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法. 在python中格式化输出字符串通用的形式为: 格式标记字符串 % 要输出的值组 其中,左边部分的"格式标记字符串"可以完全和c中的一致.右边的"值组"如果有两个及以上的值则需要用小括号括起来,中间用逗号隔开. 重点来看左

c#/ASP.NET操作cookie(读写)代码示例

Cookie是存在硬盘上,IE存cookie的地方和Firefox存cookie的地方不一样.不同的操作系统也可能存cookie的地方不一样. 不同的浏览器会在各自的独立空间存放Cookie, 互不干涉以我的windows7, IE8为例,  cookie存在这: C:\Users\xiaoj\AppData\Local\Microsoft\Windows\Temporary Internet Files 注意: 缓存文件和cookie文件,是存在一起的, 都在这个目录下. 你也可以这样找, 打