快速入门
你可以通过一个简单的 评论墙示例 来快速了解 Sync 的用法。
环境准备
- 支持 Android Studio 1.4 以上
- 支持 JDK 7.0 以上版本
- 支持 Android 手机系统 4.0.3 以上版本,即 Android SDK 15 以上版本
1. 创建应用
Section titled “1. 创建应用”首先,你需要在控制面板中创建应用。
2. 安装 SDK
Section titled “2. 安装 SDK”SDK 的安装方式有两种,你可以任选其一:
- 使用 Maven
|
- 使用 Gradle
在build.gradle中添加:
|
如果出现文件重复导致的编译错误,可以选择在build.grade中添加packagingOptions:
android { ... packagingOptions { exclude 'META-INF/services/com.fasterxml.jackson.core.ObjectCodec' exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory' exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.properties' exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.xml' exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties' exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.xml' exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.properties' exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.properties' exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml' exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.xml' exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.properties' exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.xml' exclude 'META-INF/maven/com.wilddog.client/wilddog-core-android/pom.xml' exclude 'META-INF/maven/com.wilddog.client/wilddog-core-android/pom.properties' exclude 'META-INF/maven/com.wilddog.client/wilddog-auth-android/pom.xml' exclude 'META-INF/maven/com.wilddog.client/wilddog-auth-android/pom.properties' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/notice' exclude 'META-INF/notice.txt' exclude 'META-INF/license' exclude 'META-INF/license.txt' }}3. 配置 Android 权限
Section titled “3. 配置 Android 权限”在 AndroidMainfest.xml 文件中添加:
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><application...><receiver android:name="com.wilddog.client.receiver.WilddogAuthCastReceiver"> <intent-filter> <action android:name="com.wilddog.wilddogauth.signinsuccess"/> <action android:name="com.wilddog.wilddogauth.signoutsuccess"/> </intent-filter> </receiver></application>4. 创建 Sync 实例
Section titled “4. 创建 Sync 实例”// 初始化WilddogOptions options = new WilddogOptions.Builder().setSyncUrl("https://<wilddog SyncAppID>.wilddogio.com").build();WilddogApp.initializeApp(this, options);SyncReference ref = WilddogSync.getInstance().getReference();提示:
Wilddog Sync 允许同时创建多个实例。
5. 写入数据
Section titled “5. 写入数据”setValue() 用于向指定节点写入数据。Sync 的数据存储格式采用 JSON。
例如,在应用的根节点下写入评论数据:
Comment comment = new Comment("Jack","Wilddog, Cool!");ref.child("messageboard").child("message1").setValue(comment);写入的数据如下图:
6. 监听数据
Section titled “6. 监听数据”addValueEventListener()或 addListenerForSingleValueEvent() 方法用于监听 节点 的数据。
例如,从应用中获得评论数据:
// dataSnapshot 里面的数据会一直和云端保持同步myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if(dataSnapshot.getValue()!=null){ Log.d("onDataChange",dataSnapshot.toString()); } } @Override public void onCancelled(SyncError syncError) { if(syncError!=null){ Log.d("onCancelled",syncError.toString());} }});
// 如果你只想监听一次,那么你可以使用addListenerForSingleValueEvent()
myRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if(dataSnapshot.getValue()!=null){ Log.d("onDataChange",dataSnapshot.toString()); } } @Override public void onCancelled(SyncError syncError) { if(syncError!=null){ Log.d("onCancelled",syncError.toString());} }});7.数据安全
Section titled “7.数据安全”你可以在 Sync 中使用规则表达式进行数据访问权限的控制。规则表达式可以实现以下功能:
- 数据访问权限控制
- 用户访问权限控制
- 数据格式校验
- 数据索引
规则表达式的具体使用,请参考 安全性与规则。
注意:
初始配置下,所有人都能读写你的应用数据,请及时在 实时通信引擎-读写权限 中更改规则表达式。