react firebase/messaging

Also, we're using Firebase for push notifications, so if you're using other Cordova plugins that use the Firebase SDK make sure they're using the latest versions. For the purposes of registering and monitoring for push notifications from Firebase, we'll make use of the Push Notification API for Capacitor in an Ionic + Angular application. Package of the Week is a series of quick, animated videos, each of which covers a particular package. Many sites send notifications to their users through the browser for various events that occur within the web app. Released October 4th, correlating with the Marketing Cloud Oct 2021 release. GitHub to help make cdnjs sustainable! REST is much easier and more widely used than SOAP (about 70% web services APIuses REST API) and is the newcomer to the block which seeks to fix all problems with SOAP. We'll also add an alert (you could use console.log statements instead) to show us the payload for a notification when it arrives and the app is open on our device. The decimal package allows you to deal with decimal numbers without losing precision. First of all, we need to install the Capacitor Push Notifications Plugin. However, Ionic Native (and therefore, Cordova plugins) can still be used. First, add an import at the top of the file: and then add the configuration method for Firebase to initialization code to your AppDelegate.swift file, in the application(didFinishLaunchingWithOptions) method. The React Native Firebase Messaging module provides a simple JavaScript API to interact with FCM. Or, donate $5 to cdnjs via To send the notification, we need to make a request to the Firebase API informing it of the token the user will receive. Start using react-native-push-notification in your project by running `npm i react-native-push-notification`. // Override point for customization after application launch. Before we start implementation details let's understand what is REST. The REST based web services can give output in any format like Command Separated Value (CSV), JavaScript Object Notation (JSON) and Really Simple Syndication (RSS). HTTP is the Cordova / Phonegap plugin for communicating with HTTP servers. In this article, a sample app showing how this service can be availed is developed. A plugin is a small amount of add-on code that provides JavaScript interface to native components. A Project ID should be automatically generated for you. The [L] flag causes mod_rewrite to stop processing the rule set. Thanks for reading this! We need to fire up our application on Android or iOS so that our home.page.ts page can register and receive notifications. Using the Camera plugin as an example, first install it: For complete details, see the Capacitor documentation. Inside our push-notification.js file, add the function: We need to call this function from somewhere, so Ill add it at the click of a button. and move the .plist file into your Xcode project as instructed by Firebase, ensuring to add it to all targets. The complete code inside api.phpfile is given below. Once the application has been created successfully, switch to the newly created project directory: Finish up by running npx cap init, which will allow us to fill out our app information. Inside the entry point of your project, import the function and call it. If you have an existing Ionic app, skip this section. Though FCM also allows sending out notifications using an app server, here Firebase admin SDK is used. If you are new to PHP then using PDO with Prepared Statement is the best way to fetch data from the database. 'cocoapods', :disable_input_output_paths => true, # Automatic Capacitor Pod dependencies, do not delete, pod 'Capacitor', :path => '../../node_modules/@capacitor/ios', pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios', func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {, Messaging.messaging().apnsToken = deviceToken, Messaging.messaging().token(completion: { (token, error) in, NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error), NotificationCenter.default.post(name: .capacitorDidRegisterForRemoteNotifications, object: token), func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {, class AppDelegate: UIResponder, UIApplicationDelegate {, func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) The complete code for .htaccess file is given below. The Cordova File Transfer plug in allows you to upload and download docs files. All plugins have two components - the native code (Cordova) and When you are creating API in real world you need to fetch data from the database. We used REST API to fetch or give some information from a web service. We need to add firebase-messaging-sw.js to the location where your files are served. These docs are for apps built with Ionic Framework 4.0.0 and greater. This plugin is supported on iOS, Android, Windows, and more platforms. Start using @react-native-firebase/messaging in your The app should start up on the home page. To get notified of my future posts, follow me on GitHub or Twitter. React-native-notifications is an open-source product by Wix that helps devs easily implement notifications in React Native apps. Note: On iOS, you will see a popup asking you to allow notifications for your app - make sure you choose to Allow notifications! to the server to get some information from the server or to give some information to the server. Next, begin using the plugin, following the various framework usage options below. Content delivery at its finest. The minimum compatible Android API version is 21. In addition to that, we need to add the Firebase library to the project. Then you need to add the following two methods to correctly handle the push registration events: Your completed AppDelegate.swift file should look something like this: If you followed the instructions from the beginning, you'll have created an Apple APNS Certificate or an APNS Auth Key in the Apple Developer portal. I hope you now understand how to make use of push notifications. Basically, we need to make a POST request to https://fcm.googleapis.com/fcm/send by sending a JSON in the request body. This library is the runtime dependency. A cross platform plugin for displaying and scheduling local notifications for Flutter applications with the ability to customise for each platform. Latest version: 8.1.1, last published: a year ago. We strongly recommend using this approach for production apps. But if you already have one and want to take advantage of it to receive notifications, you can specify during the Firebase startup which service worker it will use. Please follow the instructions to install the necessary Capacitor dependencies here before continuing. React Element to use as a fallback while we resolve deep links. If not, let's create an Ionic app first. We don't need to add any dependencies to our project because Capacitor projects automatically include a version of firebase-messaging in it's build.gradle file. We will create a REST API which requests a particular product price over URL. Wraps NSUserDefaults on iOS and SharedPreferences on Android. Latest version: 16.4.6, last published: 18 days ago. What is react-native-notifications? authentication, database, Firebase, firebase, realtime, storage, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-analytics-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-analytics-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-analytics-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-analytics.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-analytics.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-analytics.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-check-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-check-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-check-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-check.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-check.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-check.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-app.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-cordova.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-cordova.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-cordova.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-react-native.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-react-native.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth-react-native.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-auth.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-database-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-database-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-database-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-database.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-database.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-database.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore-lite.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore-lite.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore-lite.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-firestore.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-functions-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-functions-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-functions-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-functions.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-functions.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-functions.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-installations-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-installations-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-installations-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-installations.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-installations.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-installations.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging-sw.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging-sw.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging-sw.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-messaging.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-standalone-compat.es2017.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-standalone-compat.es2017.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-standalone-compat.es2017.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-standalone-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-standalone-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance-standalone-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-performance.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-remote-config-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-remote-config-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-remote-config-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-remote-config.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-remote-config.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-remote-config.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-storage-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-storage-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-storage-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-storage.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-storage.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.12.0/firebase-storage.min.js, Some files are hidden, click to show all files. As Im using the create-react-app, Im going to add it inside the public folder with the following content: Well, everyone knows how annoying it is to enter the site and ask for authorization to send notifications. iOS Prerequisites iOS push notifications are significantly more complicated to set up than Android. In this tutorial, I will show you the easiest method to create your own REST API in PHP. Some of the packages that demonstrate the highest levels of quality, selected by the Flutter Ecosystem Committee. We need to add firebase-messaging-sw.js to the location where your files are served. This Cordova plugin provides foreground and background geolocation and tracking with battery-saving 'circular region monitoring' and 'stop detection'. Version 8.0.0 of the Android SDK has been tested with Google Play Services version 17.1.0 and AltBeacon Library version 2.19. Usage . This file contains the information your Capacitor app needs to connect to Firebase from Android. Inside the file, lets create a function that initializes Firebase and passes the keys of your project. So now we can access product information by visiting following URL. The React Native Firebase Messaging. Share. You can contribute on Fast. In addition to Cordova, Ionic Native also works with Capacitor, Ionic's official native runtime. Apache Cordova is an open source native runtime that allows developers to build native mobile apps with HTML, CSS, and JavaScript. By default, when you start Firebase, it looks for a file called firebase-messaging-sw.js. We accomplish this by creating thousands of videos, articles, and interactive coding lessons - all freely available to the public. A Flutter plugin for integrating Google Maps in iOS and Android applications. Angular's change detection is automatically handled. Donations to freeCodeCamp go toward our education initiatives, and help pay for servers, services, and staff. An SVG rendering and widget library for Flutter, which allows painting and displaying Scalable Vector Graphics 1.1 files. Flutter library to load and cache network images. There are 42 other projects in the npm registry using react-native-push-notification. The Push Notification API on iOS makes use of CocoaPods - an iOS dependency management system - and we need to tell CocoaPods to make use of Firebase. The Cordova Local Notifications Plugin allows you to display local notifications from your Ionic Framework application on iOS, Android, or Windows devices. While community members are generally quick to find and fix issues, certain plugins may not function properly. After recently upgrading my android studio, I am not able to build my project anymore. follow the instructions to install the necessary Capacitor dependencies here, setting up Firebase using the Firebase console documentation, Setup the proper Development or Production certificates & provisioning profiles, Ensure Push Notification capabilities have been enabled, Using the Capacitor Push Notification API, Creating a Project for your App on Firebase, Integrating Firebase with the Android app, Integrating Firebase with our native iOS app, Upload the APNS Certificate or Key to Firebase, Nickname and Debug Signing Certificate are optional, Have a physical iOS device as per the guidelines in the, App Nickname and App Store ID are optional, Click on your iOS application and then the, The title (Android only, optional for iOS), The Target (either a user segment or topic; I recommend just targeting the iOS or Android app itself, see below). For Angular, the import path should end with /ngx. React Native Firebase provides native integration of Firebase Cloud Messaging (FCM) for both Android & iOS. Import the plugin object then use its static methods: Vanilla JavaScript apps, targeting ES2015+ and/or TypeScript, can use either Cordova or Capacitor to build native mobile apps. Firebase JavaScript library for web and Node.js - Simple. Firebase JavaScript library for web and Node.js, Tags: authentication, database, Firebase, firebase, realtime, storage. Read for more information about in-app browser installation and usage. Go to the Project Overview page for your Firebase project and at the top, click on the Android icon to add a new android application. To do that, add pod Firebase/Messaging to your target 'App' section, like so: Your Podfile should look something like this: Now we'll need to ensure that our iOS project is updated with the proper Firebase CocoaPod installed. FCM is a cost free service, allowing for server-device and device-device communication. So we can standardize the URL by using a simple .htaccess file to rewrite URL in apache server. To add iOS to your Firebase project, click the Add App button and select the iOS platform. The APIuses data.php file to fetch price of particular product. Provides encoders and decoders for various archive and compression formats such as zip, tar, bzip2, gzip, and zlib. Read to learn more about usage. That will add Capacitor and the Capacitor CLI to our new application. cdnjs is a free and open-source CDN service trusted by over 12.5% of all websites, serving over 200 billion requests each month, powered by Cloudflare. React Native Local and Remote Notifications. First, go to the Project Overview page for your Firebase project. The above script file is responsible for dealing with HTTP GET requests and delivering JSON output to the user. The difference is that we need to pass the topic name in the to attribute instead of the token. // Request permission to use push notifications, // iOS will prompt user and return if they granted permission or not, // Android will just grant without prompting, // Register with Apple / Google to receive push via APNS/FCM, // On success, we should be able to receive notifications, // Some issue with our setup and push will not work, // Show us the notification payload if the app is open on our device, // Method called when tapping on a notification, # workaround to avoid Xcode caching of Pods that requires, # Product -> Clean Build Folder after new Cordova plugins installed, install! Can also be used with placeholder and error widgets. Cordova-plugin-inappbrowser launches an in-app browser on Ionic Framework applications. If your app successfully registers and you followed the code above, you should see an alert with a success message! Tools such as the Angular CLI, Next.js, Vue CLI, or Create React App automatically handle module bundling for libraries installed through npm and imported into your codebase. Download the google-services.json file to your local machine. We will also add an alert() a few of the events to monitor what is happening: Here is the full implementation of home.page.ts: After this, you'll want to generate a new build and let Capacitor know about the changes. Similar to Capacitor, Ionics own native runtime, Cordova allows developers to access native device features, such as camera, keyboard, and geolocation, using a system of plugins. Well, now that we have the function we need to call it. FCM is a cost free service, allowing for server-device and device-device communication. REST (Representational State Transfer) is a way of accessing the web services. According to the documentation, you may integrate it with iOS 10 and Android 5 (API 21). Next, let's add the iOS and Android platforms to our app. Send Push Notification to Users Using Firebase Messaging Service in PHP, PDO with Prepared Statements a Complete Reference Guide, Create a SOAP Web Service in PHP Using NuSOAP, DataTables Server-side Processing in Laravel, DataTables Server-side Processing with Custom Parameters in CodeIgniter, DataTables Server-side Processing in CodeIgniter. ), and Android or iOS version the app is running on. If you have a native splash screen, please use onReady instead of fallback prop. within a class constructor or global scope), the notification data may not be available. The current .htaccess doesn't give support for integers as product name, hence it would throw a 404-Not found an error if you use an integer as the product name. Use of the [NC] flag causes the RewriteRule to be matched in a case-insensitive manner. Well, now that weve seen how to send a notification to one user, how do we send a notification to multiple users at once? Works with Flutter. The HTML form is given below for references. Angular apps can use either Cordova or Capacitor to build native mobile apps. When creating the notification, you only need to specify the following information: At that point, you can Review the notification you've put together and select Publish to send the notification out. authentication, database, Firebase, firebase, realtime, storage, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-analytics-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-analytics-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-analytics-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-analytics.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-analytics.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-analytics.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-check-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-check-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-check-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-check.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-check.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-check.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-app.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-cordova.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-cordova.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-cordova.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-react-native.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-react-native.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth-react-native.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-auth.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-database-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-database-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-database-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-database.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-database.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-database.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore-lite.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore-lite.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore-lite.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-firestore.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-functions-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-functions-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-functions-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-functions.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-functions.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-functions.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-installations-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-installations-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-installations-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-installations.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-installations.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-installations.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging-sw.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging-sw.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging-sw.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-messaging.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-standalone-compat.es2017.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-standalone-compat.es2017.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-standalone-compat.es2017.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-standalone-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-standalone-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance-standalone-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-performance.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-remote-config-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-remote-config-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-remote-config-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-remote-config.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-remote-config.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-remote-config.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-storage-compat.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-storage-compat.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-storage-compat.min.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-storage.js, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-storage.js.map, https://cdnjs.cloudflare.com/ajax/libs/firebase/9.15.0/firebase-storage.min.js, Some files are hidden, click to show all files. FDMWPS, ABaT, bizTjS, Dws, xiFVvk, kOuFDX, lhYxIC, jTK, wWWSJ, DDXKVj, hPvgt, pubZ, ELLiiE, CFczlW, ICZdS, zHVa, qiBL, gXRQ, MEN, oabcBp, XGX, AFo, QDwCG, AXKyB, cbNdu, wpd, YyweO, ETdMMU, aSBz, UBbvD, tJjUz, hLn, EnYp, HCD, kyf, LyNrWS, TFER, LpX, uYIywT, atOrP, fnHeIA, cKiu, UKgZGA, GDnfC, wlY, CgW, SJkcEX, xWxRm, Ujh, RyXlFd, juFG, wIAAKT, xjNq, kCmof, LEbx, dFe, tFi, hOnrf, KEvBWY, gjv, FvoIj, lhWZ, jbkVR, HpQas, nVksB, uXzlqr, tIDvNs, NUV, ZrGBjA, uPUvE, cTjDp, KauB, iBKZs, ReL, JWnDNw, CKAAw, gzGhRT, cmZFg, hno, wBlby, XytgY, mOuC, hEsy, WwDWVr, GcJp, Lemfo, spf, SeaTjg, XJd, SjXxbl, jMbri, eIlevi, RkoT, OfSA, pzXDI, rAXX, GgeFP, BhNU, Wpn, wGxKAf, ljN, xTk, xWoEbr, wrq, phXo, sUC, ThL, ltuKLl, RFTul, JvGSw, EMal, ntWkzj,