Question 1. What Is A Firebase Project?
A project is a container for apps across iOS, Android and web. It supports sharing of features such as Database, Config and Notifications between your cross-platform apps.
You should add iOS, Android and web app variants to a single project.
Question 2. Do I Need To Provide A Sha-1 When Adding An Android App?
A SHA-1 is only required if you are using either Firebase Invites or Firebase Dynamic Links. Adding a SHA-1 to your project simplifies the Google Sign-In configuration with Firebase Authentication.
If you’re not using these features, you don’t have to provide a SHA-1.
Question 3. I Currently Have Both An Existing Firebase.com App As Well As An Existing Google Project. How Do I Import Both Of Them Into A Single Firebase Project?
You should upgrade your firebase.com app into a Firebase project. If you want to use Google Sign In with Firebase Authentication or Firebase Invites in your Firebase project, and you have your OAuth Client registered with another Google project, you can add the OAuth client ID of your Google project to the Auth > Sign in method > Google > Whitelist client IDs from external projects list.
Question 4. How Is My Firebase Console Language Determined?
The language setting for the Firebase console is based on the language selected in your Google account settings under “Account Preferences” > “Language and Input Tools”.
The Firebase console is available in the following languages:
- Brazillian Portuguese
- Simplified Chinese
- Traditional Chinese
Question 5. What Roles And Permissions Does The Firebase Console Support?
- The Firebase console and Google Cloud console use the same underlying roles and permissions. At a high-level, these are owner, editor, and viewer.
- A project owner can add other members to the project, link other Google services such as Play/AdMob/AdWords/BigQuery and has full edit access on the project.
- A project editor has full edit access on the project.
- A project viewer has only read access on the project. Note that our UI currently does not hide/disable edit UI controls for project viewers, but these operations will fail for users with viewer role.
Question 6. What Are The Prerequisites For Linking Play/admob/adwords/bigquery To My Firebase Project?
- For linking your Play account, you need to be both a Firebase project owner and a Play account owner.
- For linking your AdMob app, you need to be both a Firebase project owner and an AdMob administrator.
- For linking your AdWords account, you need to be both a Firebase project owner and an AdWords administrator.
- For linking your BigQuery project, you need to be the Firebase project owner.
Question 7. What Are The Supported Browsers For Accessing Firebase Console?
The Firebase console can be accessed from recent versions of popular desktop browsers such as Chrome, Firefox, Safari and IE. Mobile browsers are currently not fully supported.
Question 8. What Open Source Notices Should I Include In My App?
On iOS, the Firebase pod contains a NOTICES file which includes the relevant entries.
Question 9. Why Is Firebase Analytics A Recommended Part Of Using Firebase Products?
Firebase Analytics is a free and unlimited analytics solution that works with Firebase features to deliver powerful insights. It enables you to view event logs in Firebase Crash Reporting, notification effectiveness in Firebase Notifications, deep link performance for Firebase Dynamic Links, and in-app purchase data from Google Play. It powers advanced audience targeting in Firebase Remote Config, Firebase Notifications, and more.
Firebase Analytics acts as a layer of intelligence in the Firebase console to provide you with more actionable insights about how to develop a high quality app, grow your user base, and earn more money.
Firebase Analytics is a part of the core Firebase SDK. Integrating Firebase Analytics is fast and easy.
Question 10. How Do I Segment Users Who Have Have Not Met Some Criterion?
You can reframe the problem by “negatively targeting” these users. For example, reframe the problem as “Don’t show ads to people who have bought something”, and form an audience of those users to target.
Question 11. How Do I Control How My Analytics Data Is Shared With Rest Of Firebase?
By default, your Firebase Analytics data is used to enhance other Firebase and Google features. You can control how your Firebase Analytics data is shared in your project settings anytime.
Question 12. How Do I Create Closed Funnels?
In Firebase Analytics, the Funnels page only shows open funnels. To create closed funnels, the events that the developers create have to enforce this. For example, if the following flows are possible:
Flow 1: Screen A, Screen B, Screen C, Screen D
Flow 2: Screen X, Screen Y, Screen C, Screen D
You could log the following events :
Flow 1 → A, B, C_1, D_1
Flow 2 → X, Y, C_2, D_2
Each set of these creates a closed funnel in Firebase Analytics. You can then create an audience of users who log all events in each Flow.
Question 13. Why Are There Fewer Crash Reports In Analytics Than Crash Reporting?
Crash Reporting creates a separate background process to upload crash info. If your app extends the Android Application class, you must ensure it is multi-process safe. Otherwise, it may cause concurrency issues. When an app extends an Application object, this object gets instantiated for each process in a multi-process app. Consider the following when adding Crash Reporting to your app:
If the implementation of this object accesses any out-of-process state (a database, the file system, shared preferences, etc), or performs other actions not safe for a multi-process environment, concurrency issues might arise. This is because multiple instances of the Application object may run simultaneously.
Many third-party libraries keep out-of-process state (e.g. in a local database) and are subject to the same concurrency issues if they are initialized from the Application object. If your app fits this description and you plan to use Crash Reporting in your app, we strongly encourage you to consider moving the Application logic to Content Providers, or to Android Activities. Any Application logic that is not safe for a multi-process environment can have unintended effects on your app.
Crash Reporting automatically exports captured errors to Firebase Analytics as app_exception events. Currently on Android, you may see a significant discrepancy between the number of Crash Reporting errors and Analytics app_exception events.
Question 14. Do I Need To Use Other Firebase Services In Order To Use Fcm?
You can use Firebase Cloud Messaging as a standalone component, in the same manner as you did with GCM, without using other Firebase services.
Question 15. I Am An Existing Google Cloud Messaging (gcm) Developer. Should I Move To Firebase Cloud Messaging?
FCM is the new version of GCM under the Firebase brand. It inherits GCM’s core infrastructure, with new SDKs to make Cloud Messaging development easier.
Benefits of upgrading to FCM SDK include:
Simpler client development. You no longer have to write your own registration or subscription retry logic.
An out-of-the-box notification solution. You can use Firebase Notifications, a serverless notifications solution with a web console that lets anyone send notifications to target specific audiences based on Firebase Analytics insights.
Question 16. Why Do My Targeted Devices Apparently Fail To Receive Messages?
When it looks like devices haven’t successfully received messages, check first for these two potential causes:
Foreground message handling for notification messages. Client apps need to add message handling logic to handle notification messages when the app is in the foreground on the device. See the details for iOS and Android.
Network firewall restrictions. If your organization has a firewall that restricts the traffic to or from the Internet, you need to configure it to allow connectivity with FCM in order for your Firebase Cloud Messaging client apps to receive messages. The ports to open are:
FCM usually uses 5228, but it sometimes uses 5229 and 5230. FCM does not provide specific IPs, so you should allow your firewall to accept outgoing connections to all IP addresses contained in the IP blocks listed in Google’s ASN of 15169.
Question 17. I Have Implemented Onmessagereceived In My Android App, But It Is Not Being Called.?
When your app is in the background, notification messages are displayed in the system tray, and onMessageReceived is not called. For notification messages with a data payload, the notification message is displayed in the system tray, and the data that was included with the notification message can be retrieved from the intent launched when the user taps on the notification.
Question 18. Why Was My Realtime Database Reported Bandwidth Lower Than Average Between September 2016 And March 2017?
For our bandwidth calculations, we normally include SSL encryption overhead (based on layer 5 of the OSI model). However, in September 2016, we introduced a bug that caused our bandwidth reporting to ignore encryption overhead. This might have resulted in artificially low reported bandwidth and bills on your account for a few months.
We released a fix for the bug in late March 2017, returning bandwidth reporting and billing to their normal levels.
Question 19. What Are The Scaling Limitations Of The Realtime Database?
Each Realtime Database instance has limits on the number of write operations per second. For small writes, this limit is approximately 1000 write operations per second. In addition, each database instance has a cap on the number of simultaneous database connections.
Our default limits are large enough for most applications. If you are building an app that requires additional scale, we recommend tracking your usage over time and contacting us if you get near these limits. In some cases, we may need to shard your application across multiple database instances for added scale.
Question 20. What Can I Do If I’m Over My Real Time Database Usage Limits?
If you’ve received an email alert or notification in the Firebase console that you’ve exceeded your Realtime Database usage limits, you can address it based on the usage limit you’ve exceeded. To see your Realtime Database usage, go to the Realtime Database usage section of the Firebase console.
If you’re over your download limit, you can upgrade your Firebase plan or wait until your download limit resets at the start of your next billing cycle. To decrease your downloads, try the following steps:
- Add queries to limit the data that your listen operations return.
- Check for unindexed queries.
- Use listeners that only download updates to data — for example, on() instead of once().
- Use security rules to block unauthorized downloads.
If you’re over your storage limit, upgrade your plan to avoid service disruptions. To reduce the amount of data in your database, try the following steps:
- Run periodic cleanup jobs.
- Reduce any duplicate data in your database.
Note that it may take some time to see any data deletions reflected in your storage allotment.
If you’re over your simultaneous database connections limit, upgrade your plan to avoid any service disruptions. To manage simultaneous connections to your database, try connecting via users via the REST API if they don’t require a realtime connection.
Question 21. Why Can’t I Use Cloud Storage?
Firebase Storage creates a default bucket in the Google App Engine free tier. This allows you to quickly get up and running with Firebase and Firebase Storage, without having to put in a credit card or enable a billing account. It also allows you to easily share data between Firebase and a Google Cloud Platform project.
There are, however, two known cases where this bucket cannot be created and you will be unable to use Firebase Storage:
A project imported from Google Cloud Platform which had a Google App Engine Master/Slave Datastore application.
A project imported from Google Cloud Platform which has domain prefixed projects. For example: domain.com:project-1234.
There are currently no workarounds to these issues, and we recommend that you create a new project in the Firebase console and enable Firebase Storage in that project.
Question 22. Why Don’t Fetched Values Change The Behavior And Appearance Of My App?
When your app fetches parameter values from the Remote Config service, those values are cached locally but not activated. To activate fetched values so that they can take effect, call activateFetched. This design lets you control when the behavior and appearance of your app changes, because you can choose when to call activateFetched. After you call activateFetched, your app source code determines when updated parameter values are used.
For example, you could fetch values and then activate them the next time a user starts your app, which removes the need to delay app startup while your app waits for fetched values from the service. Changes to your app’s behavior and appearance then occur when your app uses the updated parameter values.
Question 23. How Quickly Does The Remote Config Service Return Fetched Values After My App Sends A Fetch Request?
Devices usually receive fetched values in less than a second, and often receive fetched values in milliseconds. The Remote Config service handles fetch requests within milliseconds, but the time required to complete a fetch request will depend on the network speed of the device and the latency of the network connection used by the device.
If your goal is to make fetched values take effect in your app as soon as possible, but without creating a jarring user experience, consider adding calls to activateFetched each time that your app does a full screen refresh.
Question 24. Why Does My Android App Access Each Dynamic Link Twice?
The getInvitation API clears the saved Dynamic Link to prevent it from being accessed twice. Be sure to call this API with the autoLaunchDeepLink parameter set to false in each of the deep link activities to clear it for the case when the activity is triggered outside the main activity.
Question 25. I Am An Existing Google Cloud Messaging (gcm) Developer, And I Want To Use Firebase Notifications. What Should I Do?
Firebase Notifications is an out-of-the-box solution that lets anyone send notifications to target specific audiences based on Firebase Analytics insights. Also, Firebase Notifications provides funnel analysis for every message, allowing easy evaluation of notification effectiveness.
If you are an existing GCM developer, to use Firebase Notifications you have to upgrade from GCM SDKs to FCM SDKs. See the guides for migrating Android and iOS apps.
Question 26. Can Google Search Index Multiple Languages For A Single App?
Google Search supports the following multi-language cases:
- The associated website has unique URLs for each language, and there is one corresponding app HTTP URL for each web URL.
- The associated website has unique URLs for each language, but there is only one app HTTP URL. The app uses system language settings to display the correct language content.
- The associated website has one URL for all languages (or it supports only one language), and there is one corresponding app URL. The website and the application must display the content in the same language when the user has set no preference.
IPHONE APPS Interview Questions
IPHONE APPS Tutorial
Database Interview Questions
Mobile Testing Tutorial
Mobile Testing Interview Questions
jQuery Mobile Interview Questions
Mobile Security Tutorial
Bada Mobile OS Interview Questions
IPHONE APPS Interview Questions
Mobile Security Interview Questions
Mobile Developer Interview Questions
Database Interview Questions
Mobile Application Testing Interview Questions
Citrix XenApp Interview Questions
Mobile Testing Interview Questions
Mobile Application Architect Interview Questions