After updating the application, the data does not come to FirebaseAnalytics,
those that are Automatically collected events https://support.google.com/firebase/answer/9234069?hl=en The libraries associated with Firebase remained the same, the file and the project too (in the studio it says Connected), and the connection is the same, but the data stopped arriving (there were none custom events). It seems that something is interfering with sending data from the application to Firebase. I tried to debug the line mFirebaseAnalytics = FirebaseAnalytics.getInstance(this) To see what is inside mFirebaseAnalytics, but there is a lot of information that it is not clear where to look. Are there ways to programmatically find out if data is being sent to Firebase? Or maybe someone came across a similar thing, what else can it be, please tell me which way to dig !?
Are you developping a single page app? Firebase analytics take some time to show events.
Read it: How to track page view with Firebase Analytics in a web, single page app?
I have added firebase performance monitoring following the documentation. There is data showing up but its saying 0 sessions and when viewing the sessions no cpu/memory data is showing up but it is saying that I need to update the SDK to see that information.
One of the possible issues is that there is a random sampling on different sessions that can captures such detailed metrics. May be that is causing this happen. Try generating more scenarios and you should be able to see some sessions with actual data.
https://firebase.google.com/docs/perf-mon/automatic?authuser=0#more-detail-trace-samples
Please Check Your Firebase Remote Config
I'm hoping to use the OpenLocate library to help post location data in my application. I've been trying to test that it is working before I start posting events over HTTP calls sent somewhere.
I want to verify two main things
Events are being collected at the frequency I expect
Events are being stored in the database
I've verified that OpenLocate is tracking when I run the app by printing out the OpenLocate.getInstance().isTracking() flag. I've also tried using Stetho to inspect my package to see if I could read the db, but unfortunately nothing shows up.
If anyone has some experience with OpenLocate and can give me some info that would be great.
Is there a way to attach complete logcats to crashes using Firebase Crash Reporting? I did notice that the Firebase SDK has some log functions, but those have to be specifically invoked. My app already does a ton of logging to logcat using our own custom loggger (not Android logger) anyways, so I would hate to have to duplicate the log calls to Firebase.
For example, I would need to do:
MyLogger.d(TAG, "my log message");
Firebase.log("my log message");
Sending a complete logcat isn't really possible because modern Android permissions don't allow apps to access that any more (as logs could easily and accidentally contain sensitive information). You will need to invoke the logging API to get logs attached. It's advisable to hook your existing logging infrastructure to make this happen without duplication at every location.
Currently we can use logcat or ask other testers to send logcat files. But What i want as to see logs when app is on play store. So let's say if any request contact us for some problem that he is facing. Then it would be easier for us to see that user's device logs and figure out the issue. Because some issues are not easily reproducible.
Is there a way I can get the logs of device which i don't have a physically access to using some tool when the app is on play store?
EDIT
I don't want use in a way where user has to upload logs files and manually send it to our team. It should display live log on a website or provider's console.
You can track logs with Google Analytics. Just send trackers to analytics on the places you usually send logs.(You must initialize tracker first. See link below)
Example :
Tracker defaultTracker = GoogleAnalytics.getInstance(this).getDefaultTracker();
defaultTracker.send(MapBuilder.createEvent("Logger", "Log_Tag",
"Log_msg", null).build());
And you will get a event group in the Behaviour section of google analytics called Logger that has list of Log_Tags that has List of Log_msg
It is pretty easy to implement. See this link on how to add Google Analytics to your app https://developers.google.com/analytics/devguides/collection/android/v3/
Hope this helps you.
You need a custom Log service to store the important logs/errors
From your app if any crashes or important Logs you send it Log server for future reference.
Click Here
You should try Crashlytics
Crashlytics for Android delivers real-time crash reporting across all devices. We perform a deep analysis of each stack trace to identify the most important frames and we break down every bug by device model and version so you can spend less time finding and more time fixing issues.
What if "NETWORK" is not available when your app crashed on users device to update/send a crash report to you.
For me,
1.) I will get Crash Reports when User hits "Report to developer" at the time of crash.
2.) I use Google Analytics, to get the description of the app with location(which line of code) of error from "Crashes and Exceptions" under "Behaviour" tab.
Also, by modifying/adding your Google Analytics Code, as mentioned here: Crashes & Exceptions
Try your Luck!
You can use Log4j library in android.
What is Log4j library?
It is an logger library in java. And it allow the application to write logs in to your file, email when caught exceptions and can send logs in background to your server or any else. So that you can see the logs of every individual device and track the issues.
download it from the below link:
Log4j for android
Hope it will help you.
Currently I'm using ACRA.
The official link contains all details you need and offers different way of "User interaction mode", "Reports destination" and "Reports content".
If you implement it very well on your app, you can have a full report of what is happening.
Keeping in mind few things u can do it :-
create log files.
store them in your applications private area and not in sdcard ( to avoid deletion by user
or if on sdcard then use . before directory to hide it from user )
keep a service running at the background.
start uploading the document after every hour or when app moves in the background or the
file size increase >10 kb etc... depends upon choice. and remember to upload all files
in this directory.
if uploads successfully delete dat file else leave it which will be uploaded next time.
try to implement zip to make single file if file count is gr8er then 5 suppose.
In a nutshell :-
a. record.
b. zip
c. upload
c. delete.
this is my view remember