Вот решение, но оно может быть не лучшим.
У меня небольшая проблема с объемом.Для всего моего исходного кода JavaScript, который я использую
$(document).ready(function () {
...
}
Этот код прекрасно работает, позволяет мне аутентифицироваться, получать токены, повторно отправлять и т. Д.
Там у меня был некоторый код
var handleSignedInUser = function (user) {
// do stuff to display / block key elements on the site.
user.getIdToken().then(function (token) {
console.log("getIdToken(): ", token); // <-- I added this line
authUserAjaxRequest(token);
})
};
К сожалению, из-за характера моих дополнений Ajax, я не смог включить их управляющий JavaScript в оболочку $(document).ready()
.Некоторые проблемы связывали функции $().on('click'..)
с вновь созданными элементами формы.
Хммм.Помните старые добрые времена, когда мы использовали Microsoft Foundation Classes (MFC) и добавили маркеры для связи ключевых функций?Это дало мне идею.
Я добавил глобальную переменную var firebaseGlobalObject = {};
в свой исходный сценарий перед $(document).ready(function () {...
И после того, как я инициализировал свои инструменты аутентификации Firebase, я сделал копию в Глобальной переменной ...
// Initialize Firebase
var config = {
apiKey: "...",
authDomain: "....firebaseapp.com",
databaseURL: "https://....firebaseio.com",
projectId: "...",
storageBucket: "...",
messagingSenderId: "..."
};
firebase.initializeApp(config);
firebaseGlobalObject = firebase; // <--- total hack
А потом пришло время поиграть в Chrome Dev Tools Console ...
Я придумал эту красоту ...
console.log(firebaseGlobalObject.auth().currentUser.qa)
Всего взломать, но он определенно отображает ТОЧНО тот же токен, что и getIdToken()
(в моем исходном коде) и как показано в IndexedDB -> FirebaseLocalStorageDB -> FirebaseLocalStorage Object -> Key: Value (fbase_key.value.stsTokenManager.accessToken)
Очевидно, что когда я использую консоль, я нахожусь в глобальном контексте.Поэтому я думаю, что смогу сделать эту работу.Я скажу, я понятия не имею, почему кто-то выбрал .qa
для этого индекса.Существует множество описательных свойств, видимых при firebaseGlobalObject.auth().currentUser
;просто не этот токен.
У кого-нибудь есть альтернативный ответ на эту дилемму, кроме взлома (который, вероятно, потерпит неудачу со следующим обновлением Firebase через X месяцев?)