Firebase初探:实时数据库(2)

本文深入介绍了Firebase实时数据库的使用,包括小试牛刀、写操作(setValue、push、updateChildren、runTransaction)、读操作(ValueEventListener、ChildEventListener)、删除、排序和过滤以及离线功能(数据持久化、保持数据更新)。重点讲解了如何通过Firebase SDK进行数据的增删查改,并探讨了事务处理和监听器的使用,最后提到了数据同步和时间戳的处理。
摘要由CSDN通过智能技术生成

Firebase初探:实时数据库(2)

前面的那篇介绍了Firebase实时数据库的相关知识,那么客户端将如何与实时数据库进行沟通呢?

小试牛刀

Firebase的SDK当然是必不可少的了,为了使用数据库相关的API,需要在应用的依赖项中添加:

compile 'com.google.firebase:firebase-database:9.4.0'

为了和数据库交互,需要得到数据库的一个实例,而且具体的交互对象是数据库中的某个节点,这时就需要获得这个节点的一个引用:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mRef = database.getReference("students");

通过这两句代码,我们得到了数据库的实例和节点的引用,数据的读写操作都是用DatabaseReference进行的

那么数据库基本的增删查改如何进行呢?我们先来看看最直观的写和读

写操作包括了增和删,但是SDK并没有对这两个操作进行明显的区分,而是将其视为写操作,SDK中有四种写操作:

方法 说明
setValue() 在指定的路径,将数据写入或替换
push() 生成唯一ID,路径进入到此ID中
updateChildren() 更新此路径中的部分键值,而不是所有数据
runTransaction() 进行并发更新

setValue

setValue(Object)是最基本的写操作。得到某个节点的引用后,调用setValue()即可写入数据,如果该节点原本就有数据,则会覆盖该节点下的所有数据
由于数据库使用了JSON作为数据格式,setValue()可接受的参数类型有:

  • Boolean
  • Long
  • Double
  • Map< String, Object >
  • List< Object >

除了基本的数字和布尔值外,还可以接受自定义的对象,自定义对象的要求有:

  • 类必须要有默认构造器
  • 类必须为成员变量提供getter方法。没有getter方法的成员变量对应的键值将会被设为缺省值

可以看到,setValue()支持Object列表,这对于同时插入多个数据很有帮助,另外还支持Map< String, Object >,利用映射的特点,我们可以将节点路径作为键,要插入的数据作为值,就可以做到在多个位置同时进行写入了

如果希望在指定节点下进行写入,可以使用child()方法先定位到该节点下再写入,child()方法返回DatabaseR

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值