我开始创建一个Firebase数据库.
我正在尝试为一个班级建模.一个非常简单的课程:
package com.glups.model;
import com.google.firebase.database.IgnoreExtraProperties;
@IgnoreExtraProperties
public class AlumnoFB {
private String nombre;
private String apellidos;
private String telefono;
private String email;
private Boolean tieneWhatsapp;
private Boolean tieneTelegram;
private Boolean tieneHangouts;
private Long formaPago;
private Double ratioHora;
private Double precioHora;
private Double horasCompensadas;
public AlumnoFB() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public AlumnoFB(String nombre,
String apellidos,
String telefono,
String email,
Boolean tieneWhatsapp,
Boolean tieneTelegram,
Boolean tieneHangouts,
Long formaPago,
Double ratioHora,
Double precioHora,
Double horasCompensadas) { …Run Code Online (Sandbox Code Playgroud) 我已使用此更新我的应用程序到新的firebase ,现在当我编译我的项目时,我得到以下异常.
这是我的logcat:
11:57:54.533 27844-27844/com.example.dayshift_2.traveyy E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dayshift_2.traveyy, PID: 27844
java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1591)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1562)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:4871)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4466)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4406)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5102)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
我的Build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.dayshift_2.traveyy"
minSdkVersion 15
targetSdkVersion 23
versionCode 1 …Run Code Online (Sandbox Code Playgroud) 我希望所有来自Firebase的子列表都在android中.
我已经实现了这个代码,但它不起作用.
mFirebaseRef = new Firebase(FIREBASE_URL);
mFirebaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> td = (ArrayList<String>) dataSnapshot.getValue();
//notifyDataSetChanged();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
Run Code Online (Sandbox Code Playgroud) 我正在开发一个新的游戏项目,包括一个React Native前端和一个基于Lambda的后端.该应用程序需要一些实时功能,如活动用户记录,地理围栏等.
我正在研究Firebase的实时数据库,它看起来像是一个非常优雅的实时数据同步解决方案,但我不认为AWS有任何类似的东西.
我只能使用AWS服务来考虑"无服务器"实时的3个选项是:
选项1:通过WebSockets进行AWS IoT消息传递
这一点非常明显,通过IoT SDK实现了托管WebSockets连接.我正在考虑触发Lambdas以响应入站和出站事件,并且只使用WebSockets作为实时层,就像通常那样在应用客户端上构建自定义处理逻辑.
至少与Firebase相比,这方面的缺点是我将不得不自己处理事件中的数据,这将在WebSockets之上添加另一层管理,并且必须使用应用程序商店中的API数据层进行标准化. .
优点:
缺点:
选项2:推送触发重新获取
另一种选择是使用推送通知作为实时触发器,但使用常规HTTP请求到API网关实际获取更新的有效负载.
我喜欢这种方法,因为它只适用于一个传输层和应用程序状态的单一事实来源.当应用程序未打开时,它也会触发更新,因为这些是推送通知.
缺点是这是很多自定义工作,在推送通知与需要获取的数据之间可能存在困难的映射.
优点:
缺点:
选项3:Cognito Sync 这对我来说比较新,我不确定它是否可以与服务器实际连接.
Cognito Sync提供用户状态同步.跨设备完成离线支持,是我将要使用的Cognito SDK的一部分.这听起来就像我正在寻找但却无法找到任何确凿的证据,因为它可以修改或"触发"来自AWS的更新,而不仅仅是来自其中一个设备.
优点:
缺点:
我想知道是否有人有经验在AWS上实时作为基于Lambda的架构的一部分,如果你对什么是最好的方法有意见?
real-time amazon-web-services aws-lambda firebase-realtime-database aws-iot
正如标题所说,我不能得到之间的区别update和set.此外,文档无法帮助我,因为如果我使用set,更新示例的工作原理完全相同.
update来自文档的示例:
function writeNewPost(uid, username, title, body) {
var postData = {
author: username,
uid: uid,
body: body,
title: title,
starCount: 0
};
var newPostKey = firebase.database().ref().child('posts').push().key;
var updates = {};
updates['/posts/' + newPostKey] = postData;
updates['/user-posts/' + uid + '/' + newPostKey] = postData;
return firebase.database().ref().update(updates);
}
Run Code Online (Sandbox Code Playgroud)
使用相同的例子 set
function writeNewPost(uid, username, title, body) {
var postData = {
author: username,
uid: uid,
body: body,
title: title,
starCount: 0
};
var newPostKey = firebase.database().ref().child('posts').push().key; …Run Code Online (Sandbox Code Playgroud) 表的结构是:
等等
我想要做的是查询聊天表,找到通过传入的用户名字符串保存参与者的所有聊天.
这是我到目前为止:
subscribeChats(username: string) {
return this.af.database.list('chats', {
query: {
orderByChild: 'participants',
equalTo: username, // How to check if participants contain username
}
});
}
Run Code Online (Sandbox Code Playgroud) 使用Firebase Library以Message(String, String)添加到的表单中的形式向服务器发送数据HashMap<String, Message>
例:
Firebase fb = new Firebase(URL);
Firebase msgRef = fb.child("finished");
HashMap<String, Message> msgList = new HashMap<>();
Message msg = new Message(m, n);
msgList.put(HASHKEY, msg);
msgRef.push().setValue(msgList);
Run Code Online (Sandbox Code Playgroud)
使用Firebase方法接收数据时,addValueEventListener()在此表单中获取字符串
{ key = finished, value = {
-Js9Rn0uttjYIGdcv8I1={Moosa={message=email, name=Kamran}},
-Js9Vsmv6BnVzOzpl2L8={Moosa={message=msgs, name=Imran}},
-Js9WtQ8yeDwVxQMFCZb={Moosa={message=samsung, name=Samad}},
-Js9RarxoJPKn4RO2HaM={Moosa={message=Message, name=Moosa}},
-Js9b6f75lwwbsqQNJz0={Moosa={message=Qmobile, name=Bilal}},
-Js9aDxt8TlgTGUccuxu={Moosa={message=last, name=Moosa}}} }
Run Code Online (Sandbox Code Playgroud)
如何将其转换为消息对象..... ????
每当我使用addListenerForSingleValueEvent时setPersistenceEnabled(true),我只能设法从服务器获取本地脱机副本DataSnapshot而不是更新DataSnapshot.
但是,如果我用addValueEventListener用setPersistenceEnabled(true),我可以得到的最新副本DataSnapshot从服务器.
这是正常的,addListenerForSingleValueEvent因为它只搜索DataSnapshot本地(离线)并在成功检索DataSnapshot ONCE(离线或在线)后删除其侦听器?
我正在使用Firebase来观察事件,然后在完成处理程序中设置图像
FirebaseRef.observeSingleEvent(of: .value, with: { (snapshot) in
if let _ = snapshot.value as? NSNull {
self.img = UIImage(named:"Some-image")!
} else {
self.img = UIImage(named: "some-other-image")!
}
})
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误
闭包不能隐式捕获变异的自身参数
我不确定这个错误是什么,搜索解决方案没有帮助
GeoFire与实时数据库紧密耦合,而地理查询是许多希望迁移到Firestore的应用程序的常见功能依赖.有没有办法在Firestore环境中复制散列/检索位置?
firebase geofire firebase-realtime-database google-cloud-firestore
firebase-realtime-database ×10
firebase ×9
android ×5
java ×2
angular ×1
angularfire2 ×1
aws-iot ×1
aws-lambda ×1
exception ×1
geofire ×1
groupchat ×1
ios ×1
javascript ×1
real-time ×1
swift ×1
swift3 ×1