I am getting the following console error:
Uncaught (in promise) DOMException: The requested version (1) is less than the existing version (3).
Looking through the all IndexedDB options for my domain in Chrome developer tools > 'Application' (tab) > 'Storage' selection (in sidebar) > 'IndexedDB' (dropdown):
The only selection that I see with a version 3 is the fcm_token_details_db option.
Has something changed? Is this a bug? It seems to me that there's no way for me to explicitly declare the version for this, that it's declared in the FCM messaging library.
The issue was from running 2 different versions of the FCM scripts in different places. In one file we had:
importScripts('https://www.gstatic.com/firebasejs/4.6.2/firebase-app.js')
importScripts('https://www.gstatic.com/firebasejs/4.6.2/firebase-messaging.js')
and in another area we had:
importScripts('https://www.gstatic.com/firebasejs/5.4.1/firebase-app.js')
importScripts('https://www.gstatic.com/firebasejs/5.4.1/firebase-messaging.js')
Somewhere between the above mentioned script versions, Firebase made updates to the Indexedb version number.
There doesn't seem to be mention of this in the release docs.
https://firebase.google.com/support/release-notes/js
Related
I started a new project in vue.js. I added navbar. At one point, I noticed issue in the console:
Audit usage of navigator.userAgent, navigator.appVersion, and navigator.platform
I don't understand this, because I don't use any navigator in the project.
Why am I seeing this issue? How can I change it?
The reason one sees the message is well explained in the description of the very same message (audit).
The real question is who/what is the source of it. There is a hint to the file extended-css.js.
Here is an example with another file (as I do not have the extended-css.js):
Right click on the file and then choose Open in new tab.
So there you can see that the reason for the audit message is the hook.js file from the Vue.js devtools extension.
In your case it would be another extension or library you are using - direct or indirect (for example a part of vuetify, etc.).
From there you have 3 choices:
ignore it
wait for the authors of the library to fix the issue and update it
disable the extension/remove the library causing it.
https://blog.chromium.org/2021/05/update-on-user-agent-string-reduction.html
Is helpful to read. Some key points:
"Beginning in M92, we plan to start sending deprecation notices for the navigator.userAgent,
navigator.appVersion, and navigator.platform getters in the DevTools Issues tab."
"If your site, service, library or application relies on certain bits of information being present in the User Agent string such as Chrome minor version, OS version number, or Android device model, you will need to begin the migration to use the User Agent Client Hints API instead."
I know I am not using the navigator getters in question so at this point, it seems I can only wait for an update to the library's .js
(in my case, bootstrap 4) to make the warning go away.
In the latest beta 6 of Xcode 12, I'm having errors popping up when trying to resume a SwiftUI preview. The main error appears to be Cannot find type 'ASAuthorizationAppleIDButton' in scope. The code compiles perfectly fine when building or running on the simulator, and no errors show up. Only when I try to run a preview do things not work. Other errors I see are:
Type 'SignInAppleButton' does not conform to protocol 'UIViewRepresentable'
Cannot find type 'ASAuthorizationControllerDelegate' in scope
Cannot find 'ASAuthorizationAppleIDProvider' in scope
Cannot find type 'ASAuthorization' in scope
I have import AuthenticationServices at the top of my files. An important note is that the same project works perfectly fine without any errors on Xcode 12 beta 1.
A short term solution I've found is to remove all code using ASAuth (subsequently Signin with Apple) and switching from Firebase CocoaPods to their new Firebase Swift package manager. This makes previews work. Prior to switching from CocoaPods, I would get strange linker errors after removing ASAuth code.
My assumption is that I need to implement SwiftUI's new Signin with Apple button, but I don't know how to use it based on the little documentation provided by Apple.
This is the site my code references almost exactly the same: https://www.alfianlosari.com/posts/building-authentication-in-swiftui-using-firebase-auth-sdk-and-sign-in-with-apple/
I am trying to use Intents Extension in my existing Obj-C project for conversational shortcuts in iOS 13. I have followed all the steps and the procedures work fine in a sample app.
But when I try it out in my existing application the intents fail to launch and it is automatically redirected to my parent app.
The console error is as follows
[Intents] -[INCache cacheableObjectForIdentifier:] Unable to find cacheable object with identifier intents-remote-image-proxy:?proxyIdentifier=2A439A9B-6D95-BFB2-FCE4-31408D1E677F.png&storageServiceIdentifier=com.apple.Intents.INImageServiceConnection in cache.
Has anyone faced such an issue with intents? Please share your thoughts on this.
Additional Info:
The intent is registered. Have implemented the 'handle' 'resolve' methods and have also declared them in the interface.
Have the extension's min deployment target same as the parent (which created an issue that I had missed previously).
The issue was created due to setting up 'Copy only when installing' boolean as 'true' in 'Embed App Extensions' under 'Build Phases'. It was resolved once the check was made 'false'.
This is kind of a weird error. In my app I was uploading images to firebase storage and retrieving them.All my firebase dependencies were of version 11.8.0. It worked fine until I added firebase auth v11.8.0.
I couldn't use auth with dependency v-11.8.0 so I changed all dependencies to v-16.0.1. Now auth works fine but I can't use tasksnapshot.getDownloadUrl() since it's deprecated and no longer supported by the version 16.0.1 storage dependency.But I want to use it so I kept all other versions as 16.0.1 and changed firebase storage to v-11.8.0 back again. Now this is the error I'm getting
java.lang.IncompatibleClassChangeError: The method 'boolean com.google.firebase.FirebaseApp.zzb()' was expected to be of type virtual but instead was found to be of type direct (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
I got these weird kind of errors 'zzb()' in my previous apps when the dependencies had different versions. So in short how can I use different versions of those dependencies? How can I use firebase-storage version 11.8.0 and others with version 16.0.1?
I need to distribute some settings based on the app version e.g. if app version equals "4.0.1" then a else b. I found the possibility to define a condition named "version" but the documentation says it is bound to the package name of the app and not the version or version code.
see here https://firebase.google.com/docs/remote-config/parameters
I tried it though specifying the app version through a "version" condition but it does not work. Any ideas on this would be much appreciated.
The main problem is that Remote config's "Version" is the build number and not the actual version number.
The way I found around this is you can add a "User Property" in Firebase like "app_version". Then when the app launches add the following code:
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
Analytics.setUserProperty(version, forName: "app_version")
You can then use this User Property in Remote Config as a condition and voila you can base some Remote Config value of of the version number. Note this will require the use of Firebase Analytics as well.
Creating a condition, which targets an app version via regular expression appears to be the only solution in this case.
For my app I use the following configuration:
Here, users who have versions 1.8.* and below receive an alternate version of a backend configuration parameter.
If you need to target only a specific version of the app, then a regular expression is not really necessary, so the approach that you took should work.
Alternatively, you can have far more control if you create a user audience based on app version, and then target the audience.