Tag: firebase

如何获取父节点的值作为字符串?

所以在上面的数据结构中,我想获得Aprilia Caponord 1200价值(在图中标出)。 我有对Aprilia (根节点)的Firebase引用,我可以获取所有键/值对数据。 这是我的代码 @override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot child : dataSnapshot.getChild()) { Map value = (Map) child.getValue(); String bike_price = value.get(“price”).toString(); String image_url = value.get(“image_url”).toString(); } } 很明显,我可以获得具有键/值关系的子节点的所有值。 但我无法专门获取父节点的名称。 那么如何以String格式获取父节点的值? 如果我打印child.getValue().toString() ,我得到JSON值,但我对解析JSON不感兴趣。 是否有任何特定的方法来获取父节点值? {Aprilia Caponord 1200={image_url=____________, price=18.35}.. }

Firestore:查询android中数组中的所有元素

我有一个类似的数据结构 /Split // Collection {authid} // Document /SentIvitation //Collection {auto-id} //Documnet amount //array 0:10 1:10 2:10 Phonenumbers//array 0:987654321 1:123456789 2:234567890 我需要查询电话号码中的所有元素,我必须检查这些电话号码是否已经存在于另一个集合中。 我的数据结构的下一个路径是 /deyaUsers //Collection {authid}. //Documnet Name: “abc” Email: “abc@gmail.com” Phonenumber:987654321 在没有任何索引的情况下可以在firestore中使用吗?

Firestore – 在本地合并两个查询

由于Firestore中没有逻辑OR运算符,因此我尝试在本地合并2个单独的查询。 现在我想知道如何保持结果的正确顺序。 当我独立运行2个查询时,我无法特定地查询结果(至少不是我使用orderBy方法从Firestore获取结果的顺序)。 我的想法是将第二个查询放在第一个查询的onSuccessListener中。 这是一个表现明智的坏主意吗? public void loadNotes(View v) { collectionRef.whereLessThan(“priority”, 2) .orderBy(“priority”) .get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot queryDocumentSnapshots) { for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) { Note note = documentSnapshot.toObject(Note.class); //adding the results to a List } collectionRef.whereGreaterThan(“priority”, 2) .orderBy(“priority”) .get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot queryDocumentSnapshots) { for (QueryDocumentSnapshot […]

Firebase / Android:将检索到的值从Firebase添加到arraylist会返回空指针exception

我正在尝试将检索到的值从Firebase数据库添加到Arraylist并从那里添加到String数组。 我的检索方法工作正常。 我可以把所有的价值都打印出来。 但显然它并没有被添加到arraylist。 这是我在片段类的onActivityCreated()中检索的代码。 ArrayList allBrands = new ArrayList(); brandRef=FirebaseDatabase.getInstance().getReferenceFromUrl(“https://stockmanager-142503.firebaseio.com/Brands”); q=brandRef.orderByChild(“brandName”); q.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { allBrands.add((dataSnapshot.getValue(Brand.class)).getBrandName()); Toast.makeText(getActivity(),(dataSnapshot.getValue(Brand.class)).getBrandName(), Toast.LENGTH_SHORT).show(); } @Override public void onChildChanged(DataSnapshot dataSnapshot, String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot) { } @Override public void onChildMoved(DataSnapshot dataSnapshot, String s) { } @Override public void […]

如果app在后台,如何使用fcm从服务器发送数据?

我从服务器向我的应用程序发送fcm通知。 我从服务器发送包含user_id的数据。 如果app在前台,我将在FirebaseMessageService类中获取此userId。 但是当应用程序处于后台时却没有得到它。 由于FirebaseMessagingService类仅在应用程序位于前台时才会执行。 那么当应用程序处于后台时,如何获得此ID? public class MyFirebaseMessagingService extends FirebaseMessagingService { private static final String TAG = “MyFirebaseMsgService”; private String mUserId; private Boolean mUpdateNotification; @Override public void onMessageReceived(RemoteMessage remoteMessage) { //Displaying data in log //It is optional Log.d(TAG, “From: ” + remoteMessage.getFrom()); Log.d(TAG, “Notification Message Body: ” + remoteMessage.getNotification().getBody()); String clickAction = remoteMessage.getNotification().getClickAction(); mUserId […]

使用GWT时找不到Firebase服务工作者(404错误)

我想在我的GWT web应用程序中使用firebase云消息传递服务,但我遇到了一些问题。 应用程序应该能够注册firebase服务工作者并使用它的特定令牌连接到服务。 此令牌,收到的消息和令牌更改时的事件应该可以在我的GWT Java代码中访问。 当我尝试使用handle.getToken()创建令牌时发生错误。 我收到此错误消息: 获取脚本时收到错误的HTTP响应代码(404)。 无法加载资源:net :: ERR_INVALID_RESPONSE browserErrorMessage:“无法注册ServiceWorker:获取脚本时收到了错误的HTTP响应代码(404)。” 代码:“messaging / failed-serviceworker-registration”消息:“消息:我们无法注册默认服务工作者。无法注册ServiceWorker:获取脚本时收到错误的HTTP响应代码(404)。(消息/失败-serviceworker注册)“。 stack:“FirebaseError:Messaging:我们无法注册默认服务工作者。无法注册ServiceWorker:获取脚本时收到错误的HTTP响应代码(404)。(messaging / failed-serviceworker-registration).↵at https://www.gstatic.com/firebasejs/3.5.2/firebase-messaging.js:41:225″__proto__:错误 它尝试访问以注册服务工作者的URL是: http : //127.0.0.1 : 11111 / firebase-messaging-sw.js 所以很明显问题是它试图从我的本地主机地址而不是其他firebase JS文件所在的位置访问javascript。 所以我的问题是如何更改它,以便从正确的源加载文件? 这些脚本包含在我的HTML文件中: // Initialize Firebase var config = { apiKey: “AIzaSyBxdZNXHiLR1IC8Wrw3Y6q_5DFoN8hn_UY”, authDomain: “fir-test-848de.firebaseapp.com”, databaseURL: “https://fir-test-848de.firebaseio.com”, storageBucket: “fir-test-848de.appspot.com”, messagingSenderId: “974661154941” }; firebase.initializeApp(config); 这是我的Java代码: 公共类FireBase { private JavaScriptObject […]

Firebase DatabaseException:无法将java.lang.Long类型的值转换为String

com.google.firebase.database.DatabaseException:无法将java.lang.Long类型的值转换为String 是在尝试将数据检索到对象以供使用时遵循文档时遇到的错误。 这是我的对象模型 public class User { private String tour_director_key; private String last_name; private String location_latitude; private String tour_id; private String photo; private String tour_director_name; private String middle_name; private String location_longitude; private String passenger_id; private long location_updated; private String tour_director; private String email; private String first_name; private String mobile_phone; private String td_id; public User() { […]

ArrayList不在onChildAdded函数内更新

public class DataService { private static DataService ourInstance = new DataService(); private DatabaseReference mDatabase; public static DataService getInstance() { return ourInstance; } public ArrayList getFriendList() { mDatabase = FirebaseDatabase.getInstance().getReference().child(“users”); final ArrayList list = new ArrayList(); mDatabase.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { UserDatabase userDatabase = dataSnapshot.getValue(UserDatabase.class); list.add(userDatabase); } @Override public void […]

Firebase云消息传递API弹簧

我必须在Spring Java中创建一个Rest API用于多层arch,其中需要为Firebase云消息传递(FCM)构建DAO,Controller,Service Manager以向Android应用程序发送推送通知消息,但我无法配置Java中的服务器,用于向设备发送通知。 我怎么能?

无法从Android中的Firebase Storge获取下载URL

无法从Android中的Firebase Storge获取下载URL。 我明白了: com.google.android.gms.tasks.zzn@ 而不是url下载链接。 我的代码: storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(Uri uri) { uri1=uri; downloadURL =uri.toString(); // Got the download URL for ‘users/me/profile.png’ } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Handle any errors } }); if(uri1==null&&downloadURL==null){ Toast.makeText(MainActivity.this, “error”, Toast.LENGTH_SHORT).show(); }else if(uri1==null){ Toast.makeText(MainActivity.this, “”+downloadURL, Toast.LENGTH_SHORT).show(); }else if(downloadURL==null) { Toast.makeText(MainActivity.this, […]