Questions tagged «firebase-realtime-database»

Firebase实时数据库是由云托管的NoSQL JSON数据库,可提供脱机缓存和同步。请勿将这个标签用于有关Cloud Firestore的问题;而是使用[tag:google-cloud-firestore]。


4
Cloud Firestore和Firebase实时数据库之间有什么区别?
Google刚刚发布了Cloud Firestore,这是他们针对应用程序的新文档数据库。 我一直在阅读文档,但是在Firestore和Firebase DB之间看不出很多区别。 重点是,与Firebase(具有JSON基础的传统noSQL数据库)相比,Firestore使用的文档和集合可轻松使用查询。 我想进一步了解它们的区别或用途,或者Firestore是否只是用来替换Firebase DB?

6
根据Firebase中的多个where子句进行查询
{ "movies": { "movie1": { "genre": "comedy", "name": "As good as it gets", "lead": "Jack Nicholson" }, "movie2": { "genre": "Horror", "name": "The Shining", "lead": "Jack Nicholson" }, "movie3": { "genre": "comedy", "name": "The Mask", "lead": "Jim Carrey" } } } 我是Firebase新手。我如何可以检索从上面的数据结果,其中genre = 'comedy'与lead = 'Jack Nicholson'? 我有什么选择?

9
编译无法完成:程序类型已经存在:com.google.android.gms.internal.measurement.zzabn
编译项目时,出现以下错误消息: Program type already present: com.google.android.gms.internal.measurement.zzabn Message{kind=ERROR, text=Program type already present: com.google.android.gms.internal.measurement.zzabn, sources=[Unknown source file], tool name=Optional.of(D8)} 要么 D8: Program type already present: com.google.android.gms.internal.measurement.zzabo 在Gradle Log中使用以下stacktrace at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104) at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)\\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121) …

7
如何保护Firebase Cloud Function HTTP端点仅允许经过Firebase身份验证的用户?
借助新的firebase云功能,我决定将一些HTTP端点移至firebase。一切都很好...但是我有以下问题。我有两个通过HTTP触发器(云函数)构建的端点 用于创建用户并返回由Firebase Admin SDK生成的自定义令牌的API端点。 API端点以获取某些用户详细信息。 虽然第一个端点很好,但是对于我的第二个端点,我只想为经过身份验证的用户保护它。表示拥有我之前生成的令牌的人。 我该如何解决呢? 我知道我们可以使用以下方法在云函数中获取Header参数 request.get('x-myheader') 但是有没有办法像保护实时数据库一样保护端点?

5
Firebase云功能非常慢
我们正在开发使用新的Firebase云功能的应用程序。当前正在发生的事情是将事务放入队列节点中。然后函数删除该节点并将其放入正确的节点。由于能够脱机工作,因此已经实现了该功能。 我们当前的问题是功能的速度。该函数本身大约需要400毫秒,所以没关系。但是有时该功能需要很长时间(大约8秒),而该条目已被添加到队列中。 我们怀疑服务器需要花费一些时间来启动,因为在第一个操作之后我们再次执行该操作。它花费的时间更少。 有什么办法可以解决这个问题?在这里,我添加了我们函数的代码。我们怀疑它没有问题,但是为了以防万一,我们添加了它。 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const database = admin.database(); exports.insertTransaction = functions.database .ref('/userPlacePromotionTransactionsQueue/{userKey}/{placeKey}/{promotionKey}/{transactionKey}') .onWrite(event => { if (event.data.val() == null) return null; // get keys const userKey = event.params.userKey; const placeKey = event.params.placeKey; const promotionKey = event.params.promotionKey; const transactionKey = event.params.transactionKey; // init …

8
使用Firebase按名称获取用户属性
我正在尝试创建一个应用程序,可以在其中获取/设置特定用户帐户中的数据,并且被Firebase吸引。 我遇到的问题是,当我的结构看起来像这样时,我不知道如何定位特定的用户数据: online-b-cards - users - InnROTBVv6FznK81k3m - email: "hello@hello" - main: "Hello world this is a text" - name: "Alex" - phone: 12912912 我环顾四周,当给他们一些随机散列作为ID时,我真的找不到任何有关如何访问单个数据的信息。 我将如何根据用户名获取单个用户信息?如果有更好的方法,请告诉我!

7
Firebase权限被拒绝
我对编码比较陌生,遇到了麻烦。 我有这段代码可以将数据发送到Firebase app.userid = app.user.uid var userRef = app.dataInfo.child(app.users); var useridRef = userRef.child(app.userid); useridRef.set({ locations: "", theme: "", colorScheme: "", food: "" }); 但是,我不断收到错误: FIREBASE警告:设置为/ users /(GoogleID)失败:Permission_denied 2016-05-23 22:52:42.707 firebase.js:227未捕获(承诺)错误:PERMISSION_DENIED:权限被拒绝(…) 当我尝试查找时,它谈论的是Firebase的规则,该规则似乎是一种我还没有学过的语言(或者说这是我的头上的话)。有人可以解释导致问题的原因吗?我以为是我要它来存储电子邮件和用户显示名称,但您根本不被允许这样做,但是当我取出这些名称时,我仍然遇到同样的问题。是否可以在不设置规则的情况下避免这种错误,还是可以通过规则教我自己如何在一天之内完成写作,还是只是脱离了联盟? 谢谢你的帮助!


7
Firebase在类上找不到要序列化的属性
我创建了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 …

4
相当于Firebase实时数据库的AWS是什么?
目前,我正在一个新的游戏项目中,该项目将由React Native前端和基于Lambda的后端组成。该应用程序需要一些实时功能,例如活动的用户记录,地理围栏等。 我一直在看Firebase的Realtime Database,它看起来像是用于实时数据同步的非常优雅的解决方案,但我认为AWS尚不具备这种功能。 我可以想到的仅使用AWS服务实现“无服务器”实时的3个选项是: 选项1:通过WebSocket进行AWS IoT消息传递 这很明显,这是通过IoT SDK进行的托管WebSockets连接。我当时想触发Lambda,以响应入站和出站事件,只是将WebSockets用作实时层,像通常那样在应用程序客户端上构建自定义处理逻辑。 不利的一面是,至少与Firebase相比,我将不得不自己处理事件中的数据,这将在WebSockets之上添加另一层管理,并且必须使用应用程序商店中的API数据层进行标准化。 优点: 可扩展的双向实时连接 缺点: 仅在打开应用程序时有效 消息结构需要实现 多个传输层需要管理 选项2:推触发式重新获取 另一个选择是使用推送通知作为实时触发器,但使用对API网关的常规HTTP请求来实际获取更新的有效负载。 我喜欢这种方法,因为它只针对应用程序状态坚持一个传输层和一个真实来源。由于这些应用程序是推送通知,因此在未打开应用程序时也会触发更新。 缺点是,这是很多自定义工作,在推送通知与需要提取的数据之间可能存在潜在的困难映射。 优点: 即使关闭应用程序,推送通知也能正常工作 单一事实来源,传输层 缺点: 最定制的解决方案 总体上将涉及更多HTTP请求 选项3:Cognito Sync 这对我来说是较新的,我不确定它是否可以从服务器上实际连接。 Cognito Sync提供用户状态同步。跨设备,具有脱机支持,并且是我仍将使用的Cognito SDK的一部分。听起来就像我在寻找什么,但找不到任何确凿的证据来证明是否有可能从AWS而不是仅从其中一台设备修改或“触发”更新。 优点: 提供抽象的实时数据模型 连接到Cognito用户记录OOTB 缺点: 不确定是否可以从Lambdas进行修改或更新 我想知道是否有人在作为基于Lambda的架构的一部分在AWS上进行实时处理的经验,并且您是否对最佳处理方式有意见?

1
Firebase更新与设置
正如标题所说,我不能得到之间的区别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); } 相同的例子使用 set …

5
Firebase和GraphQL [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 是否有人对GraphQL和Firebase有任何经验?我想一个将firebase调用放置在相关字段的解析器中,并将一些变量从组件的props传递到查询的参数中。 我们如何使用GraphQL在Firebase中插入新数据?

18
如何从Firebase Android获取所有子列表
我想要Android中Firebase的所有子列表。 我已经实现了此代码,但无法正常工作。 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) { } });

15
更新到新的Firebase后,获取异常java.lang.NoClassDefFoundError:com.google.firebase.FirebaseOptions
我已经使用this将应用程序更新为新的firebase ,现在,当我编译项目时,出现以下异常。 这是我的日志: 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 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.