Tag: firebase

基于数组项获取集合给出“FAILED_PRECONDITION:查询需要索引”

我试图获取所有带有“maths”标签的问题,但不是成功,而是转移到failedListener。 db.collection(“questionCollection”) .orderBy(“questionID”, Query.Direction.DESCENDING) .whereArrayContains(“tags”,”maths”) .limit(3) .get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot queryDocumentSnapshots) { if (queryDocumentSnapshots.isEmpty()) { Log.d(TAG, “onSuccess: LIST EMPTY”); return; } else { // Convert the whole Query Snapshot to a list // of objects directly! No need to fetch each // document. questionList = queryDocumentSnapshots.toObjects(QuestionBO.class); if (questionList != null && […]

添加应用时删除了Firebase数据库

好的,所以我正在构建一个将在Play商店中运行的应用程序,它可以将数据添加到Firebase(它无法读取它)。 第二个应用程序将保留在我身边(它不会进入游戏商店)并且它用于读取数据。 现在我做的是,让我们说第一个应用程序有包名: com.example.write ,第二个有com.example.read 。 所以我去了Firebase,创建了一个项目,使用包名com.example.write添加了一个应用程序并设置了我的第一个应用程序。 工作完美,我可以添加数据到Firebase数据库,现在创建第二个应用程序,我创建了android工作室项目,使用包名com.example.read ,并且两个应用程序使用相同的Firebase数据库,我添加了新的应用程序位于firebase中的同一个项目中,包名为com.example.read但后来我注意到之前的数据库已被删除,当我点击导航栏上的数据库按钮时,它为我提供了创建数据库的选项,我这样做,第一个应用程序崩溃(可能是因为删除旧数据库无法正确添加数据)。 那么我该如何在两个应用程序上使用相同的数据库呢? 使用firebase的火花(免费)计划!

如何使用Java程序将数据写入firebase

我正在尝试将数据写入现有的Firebase数据库,但没有写入数据。 是否有一个示例Java程序将数据写入某个Firebase数据库,我可以使用它? 我所做的就是以下内容: package org.nilostep.bota.dcp.export; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; import com.google.firebase.auth.FirebaseCredentials; import com.google.firebase.database.*; import java.io.FileInputStream; import java.util.HashMap; import java.util.Map; public class ReadWriteFirebase { private static final String DATABASE_URL = ” (the url of my database) “; public static void main(String[] args) throws Exception { FileInputStream serviceAccount = new FileInputStream(“bota-6e0b33e3f1fe.json”); FirebaseOptions options = new FirebaseOptions.Builder().setCredential(FirebaseCredentials.fromCertificate(serviceAccount)).setDatabaseUrl(“https://bota-313fb.firebaseio.com”).build(); FirebaseApp.initializeApp(options); […]

Firestore – 为什么检查DocumentSnapshot是否为空并且调用是否存在?

看一下Firestore文档中的这个代码示例: DocumentReference docRef = db.collection(“cities”).document(“SF”); docRef.get().addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { DocumentSnapshot document = task.getResult(); if (document != null && document.exists()) { Log.d(TAG, “DocumentSnapshot data: ” + document.getData()); } else { Log.d(TAG, “No such document”); } } else { Log.d(TAG, “get failed with “, task.getException()); } } }); […]

当子节点的父节点未知时从Firebase检索数据

我正在构建一个应用程序,您可以发送和获取朋友请求。 数据库的结构如下: 现在,当有人向您发送带有addValueEventListener的朋友请求时,我想构建一个“警报function”,以便我可以看到当前用户是否在数据库中有“已收到”。 就像是: mFriendRequestDatabase = FirebaseDatabase.getInstance().getReference().child(“Friend_req”); mCurrent_user = FirebaseAuth.getInstance().getCurrentUser(); String current_user_id = mCurrent_user.getUid(); mFriendRequestDatabase.child(current_user_id).addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { } @Override public void onCancelled(DatabaseError databaseError) { } }); 问题是我无法看到当前用户是否有“已发送”或“收到”,因为我不知道发送请求的人的ID。 dataSnapshot.child(???)。child(“sent”或“recieved”) 我该如何解决这个问题?

Java Server – 使用POST发送Push到Google Firebase Cloud

在我测试推送通知正在与Postman合作时,我想在我的应用程序中发送消息时向FCM发送推送请求。 调用的函数将转到我的Java服务器并调用如下函数: @POST @Consumes(MediaType.APPLICATION_JSON) public Response sendMsg(Message m) throws ExceptionFacade { … } 因此,每次调用此函数时,我都希望使用json向https://fcm.googleapis.com/fcm/send发送POST请求。 我想知道是否已经为java服务器准备好了代码? 还有一些帮助如何实现它。 另外我不明白我是否可以使用php文件来执行此操作(我发现这样的内容https://github.com/Paragraph1/php-fcm )。 我正在使用angularjs。 感谢你们 !

Firebase实时数据库跟踪更改

我试图在活动的onStart方法中跟踪数据库中的所有更改,但以下代码仅在firebase树的第一个“行”更改时起作用: mDatabase = FirebaseDatabase.getInstance().getReference(); mDatabase.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { for (DataSnapshot child : snapshot.getChildren()) { System.out.println(child.getKey() + ” : ” + child.getValue()); } } @Override public void onCancelled(DatabaseError databaseError) { } }); 我试图通过为每个孩子创建一个监听器来分别跟踪每个孩子,但它也只适用于第一个孩子。 如何跟踪所有这些更新? 谢谢。 更新。 树上有三个孩子: 我需要能够看到何时更新它们。

Firebase身份validation和数据库

我对Firebase有疑问,我是新手。 我想在登录时返回用户名,但该名称在数据库中,我只想返回名称,当然,与在身份validation中找到的电子邮件一致,也在数据库中。 我的想法是将数据库中的电子邮件与Auth进行比较,如果是真的,请给我起名字。 但我不知道如何开发它。 解决方案? 谢谢

Spring启动时的Firebase在初始化期间出错

我正在尝试在Spring Boot应用程序中设置Firebase。 我正在按照文档中给出的代码片段进行操作。 这就是我的pom看起来的样子: com.google.firebase firebase-admin 5.2.0 我用来初始化firebase的代码: @PostConstruct public void init() { InputStream serviceAccount = FirebaseConfig.class.getClassLoader().getResourceAsStream(configPath); FirebaseOptions options = null; try { options = new FirebaseOptions.Builder() .setCredential(FirebaseCredentials.fromCertificate(serviceAccount)) .setDatabaseUrl(databaseUrl) .build(); } catch (IOException e) { e.printStackTrace(); } FirebaseApp.initializeApp(options); } 在启动时, FirebaseApp.initializeApp会抛出以下错误: [错误] RunLoop:Firebase数据库runloop(5.2.0)中未捕获的exception。 请向firebase-database-client@google.com报告java.lang.NoSuchMethodError:org.json.JSONStringer.object()Lorg / json / JSONWriter; com.google.firebase下面的com.google.firebase.database.util.JsonMapper.serializeJsonValue(JsonMapper.java:72)com.google.firebase.database.util.JsonMapper.serializeJsonValue(JsonMapper.java:61) .util.JsonMapper.serializeJson(JsonMapper.java:41) 我试图包括org.json但没有运气。

一次性创建带子集合的doc

假设我有一个名为root的集合 我可以在一次调用中创建带有子集合的文档吗? 我的意思是如果我这样做: db.Collection(“root”).document(“doc1”).Collection(“sub”).document(“doc11”).Set(data) 那会一次性创建结构吗? 说实话,我试了一下,doc1有一个斜体标题,我认为只有删除的文档