У меня есть приложение Ionic (@ionic/angular: 4.0.0-beta.17
), и я использую Firebase в качестве аутентификатора (через @ angular / fire).
Всякий раз, когда я пытаюсь войти в систему с помощью номера телефона, я передаюномер (как E.164) и appVerifier
, и я сделал невидимую recaptcha.Я могу заверить вас, что эти значения действительны.
firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier)
Неожиданно я получил TypeError от Recaptcha:
ОШИБКА TypeError: Невозможно назначить только для чтения свойство 'taskData' изobject '[object Object]'
at HTMLDivElement.addEventListener (zone.js:1829)
at gg (recaptcha__iw.js:91)
at Vp (recaptcha__iw.js:89)
at He.Ot.A (recaptcha__iw.js:163)
at am (recaptcha__iw.js:566)
at He.am.render (recaptcha__iw.js:565)
at iW (recaptcha__iw.js:569)
at Oi (recaptcha__iw.js:578)
at jJ.w.CQ.jJ.a0.jJ.Eu (recaptcha__iw.js:573)
at Object.Ei [as reset] (recaptcha__iw.js:574)
Это весь процесс аутентификации:
return firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier)
.then(result => (windowRef as any).confirmationResult = result)
.catch(err => { // <-- returns error
appVerifier.render().then(widgetId => grecaptcha.reset(widgetId));
return Promise.reject(err);
});
После того, как возникает эта ошибка, я получаю еще одну ошибку относительно этой строки:
appVerifier.render().then(widgetId => grecaptcha.reset(widgetId));
Uncaught TypeError: Невозможно прочитать свойство 'then' со значением null
at jJ.w.CQ.jJ.a0.jJ.Eu (recaptcha__iw.js:573)
at Object.Ei [as reset] (recaptcha__iw.js:574)
at auth.state.ts:107 <----- (the line I mentioned above)
at e.g (auth.esm.js:17)
at Fb (auth.esm.js:20)
at Bb (auth.esm.js:20)
at A.push../node_modules/@firebase/auth/dist/auth.esm.js.g.Xb (auth.esm.js:19)
at kb (auth.esm.js:13)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138)
По какой-то причине, когда я понижаю версию пакета @ionic/angular
до версии 4.0.0-beta.15
, похоже на работу.Я понятия не имею, что происходит за кулисами.
Я не уверен, связана ли эта ошибка с Ionic, Recaptcha или Firebase.
package.json (только deps)
"dependencies": {
"@angular/common": "~7.0.0",
"@angular/core": "~7.0.0",
"@angular/fire": "~5.1.0",
"@angular/forms": "~7.0.0",
"@angular/http": "~7.0.0",
"@angular/platform-browser": "~7.0.0",
"@angular/platform-browser-dynamic": "~7.0.0",
"@angular/router": "~7.0.0",
"@fortawesome/angular-fontawesome": "^0.3.0",
"@fortawesome/fontawesome-svg-core": "^1.2.8",
"@fortawesome/pro-light-svg-icons": "^5.5.0",
"@fortawesome/pro-regular-svg-icons": "^5.5.0",
"@fortawesome/pro-solid-svg-icons": "^5.5.0",
"@ionic-native/core": "^5.0.0-beta.21",
"@ionic-native/google-maps": "^5.0.0-beta.25",
"@ionic-native/social-sharing": "^5.0.0-beta.21",
"@ionic-native/splash-screen": "5.0.0-beta.21",
"@ionic-native/status-bar": "5.0.0-beta.21",
"@ionic/angular": "4.0.0-beta.17",
"@ionic/pro": "^2.0.3",
"@ngx-translate/core": "^11.0.0",
"@ngx-translate/http-loader": "^4.0.0",
"@ngxs/devtools-plugin": "^3.2.0",
"@ngxs/form-plugin": "^3.2.0",
"@ngxs/router-plugin": "^3.2.0",
"@ngxs/store": "^3.2.0",
"cordova-browser": "5.0.4",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-googlemaps": "2.4.6",
"cordova-plugin-ionic-keyboard": "^2.1.3",
"cordova-plugin-ionic-webview": "^2.2.1",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.3",
"core-js": "^2.5.3",
"firebase": "^5.5.8",
"libphonenumber-js": "^1.6.5",
"lodash": "^4.17.11",
"rxjs": "6.2.2",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/architect": "~0.8.5",
"@angular-devkit/build-angular": "~0.8.5",
"@angular-devkit/core": "~0.8.5",
"@angular-devkit/schematics": "~0.8.5",
"@angular/cli": "~7.0.0",
"@angular/compiler": "~7.0.0",
"@angular/compiler-cli": "~7.0.0",
"@angular/language-service": "~7.0.0",
"@ionic/angular-toolkit": "^1.0.0",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/lodash": "^4.14.119",
"@types/node": "~10.12.0",
"codelyzer": "~4.5.0",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.11.0",
"typescript": "~3.1.6"
},
$ ионная информация
Ionic:
ionic (Ionic CLI) : 4.5.0 (C:\Users\Eliya\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 4.0.0-beta.17
@angular-devkit/build-angular : 0.8.8
@angular-devkit/schematics : 0.8.8
@angular/cli : 7.0.7
@ionic/angular-toolkit : 1.2.0
Cordova:
cordova (Cordova CLI) : not installed
Cordova Platforms : browser 5.0.4
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.2.1, (and 5 other plugins)
System:
Android SDK Tools : 26.1.1 (E:\android-sdk)
NodeJS : v10.11.0 (C:\Program Files\nodejs\node.exe)
npm : 6.4.1
OS : Windows 10