看来,当有人通过oAuth进行身份验证时,Firebase会创建一个类似于某个内容的uid google:111413554342829501512.
在Firebase规则中,您可以执行(读取和/或写入):
".read": "root.child('users').child(auth.uid).child('isAdmin').val() == true"
Run Code Online (Sandbox Code Playgroud)
是否因为使用HTTPS而无法通过嗅探网络来阅读消息?这是它的工作原理 - UID是Firebase规则使用的共享密钥吗?
经过firebase:session::ack身份验证后,我在浏览器中看到UID在本地存储中.
是否可以使用jQuery来读取/解析选择的有效HTML,以便您可以在其上使用jQuery方法,如.val()或.html()?
以下不适合我.我试过.html()和.val().
html = $.parseHTML('<div id="one">blah</div><div id="two">blurp</div>');
console.log ($(html).find('#one').text());
Run Code Online (Sandbox Code Playgroud) 我想打开和关闭MDL吐司,而不是使用MDL使用指南中指出的timeout属性。原因是我希望在进行地理位置定位时保持吐司状态,这有时需要10秒钟以上,而其他时间则需要1秒。
任何想法如何做到这一点?
似乎mdl-cell-0-col-phone会做到这一点,但没有运气......任何人都知道<div>在手机屏幕尺寸上查看时隐藏/不显示内部HTML 的最简单方法?
<div class="mdl-grid">
<div class="mdl-cell mdl-cell--2-col mdl-cell--0-col-phone">2 (0 phone)</div>
</div>
Run Code Online (Sandbox Code Playgroud) 如果我initializeApp通过脚本修改配置对象参数,我怎样才能重新初始化应用程序以使用新值?
它现在唯一的工作方式是重新加载/刷新页面.
有任何想法吗?
如何更新文档的嵌套对象中的字段?文档中使用点符号表示,但是如何使用变量作为对象名称来实现更新?
结构就像: collection("fruits").doc("as867f56asd")
name: "banana"
abc-variable:
description:"blah"
qty: 1
Run Code Online (Sandbox Code Playgroud)
我想更新文档as867f56asd的abc-variable.qty= 2
我的JavaScript要求对象名称使用变量。
我无法弄清楚更新的括号符号。是.set{merge:true}职位月薪?
这是到目前为止我尝试过的代码(粗略粘贴):
qty = evt.target.value;
//create a string
var obj = firebase.firestore.FieldPath(item).quantity;
//str = item + '.quantity';
//obj[str] = qty;
// var myUpdate = {};
// myUpdate['${item}.quantity'] = qty;
//var obj = [item]["quantity:"] = qty;
console.log("item is " + item);
//var obj = {"'" + item + "'.quantity" : qty};
//obj[item]["quantity"] = qty;
console.log("qty is " + qty);
orderRef.update (
{obj:2}
//{"quantity":qty} …Run Code Online (Sandbox Code Playgroud) Express文档生产最佳实践:性能和可靠性说:
不要使用同步功能
同步函数和方法会占用执行过程,直到它们返回为止.对同步函数的单次调用可能会在几微秒或几毫秒内返回,但在高流量网站中,这些调用会增加并降低应用程序的性能.避免在生产中使用它们.
所以我的问题是,在节点/快递的情况下,如果我有接受一些静态值,并返回一个计算结果的功能(我通常会考虑"同步功能"),是最好的做法是内换行功能a new Promise和resolve结果或是否会产生任何重大的不必要的开销?例如:
//inside my index.js
var myArgument = 'some long string';
var myResult = myFunction(myArgument);
function myFunction(myArgument){
var thisResult;
//some calculations
return thisResult;
}
Run Code Online (Sandbox Code Playgroud)
//inside my index.js
(async function() {
var myArgument = 'some long string';
var myResult = await myFunction(myArgument);
});
function myFunction(url) {
return new Promise((resolve, reject) => {
var thisResult;
//some calculations
if(thisResult){
resolve (thisResult);
} else {
reject (null)
}
});
}
Run Code Online (Sandbox Code Playgroud) 我已经获得了Firebase Web身份验证,并为oAuth以及本地用户名/密码(电子邮件地址)工作.
我的问题是:有没有人知道如何在那里引入一个额外的步骤,以便在完全验证之前必须由站点管理员批准新帐户?我正在考虑调整/利用该user.emailVerified属性,但我认为这对oAuth用户不起作用.
有一种简单的方法可以做到这一点 - 添加管理员批准步骤吗?或者,Firebase身份验证子系统中是否有可以轻松切换的属性?
我无法显示 offline.html 页面。我不断得到The FetchEvent for "https://my-domain.com" resulted in a network error response: a redirected response was used for a request whose redirect mode is not "follow".
这是我的 service-worker.js 的片段,它应该offline.html在网络不可用时返回。
self.addEventListener('fetch', function(event) {
if (event.request.mode === 'navigate' || (event.request.method === 'GET' && event.request.headers.get('accept').includes('text/html'))) {
if(event.request.url.includes("my-domain.com")){
console.log(event.request);
event.respondWith(
caches.match(event.request).then(function(resp) {
return resp || fetch(event.request).then(function(response) {
let responseClone = response.clone();
caches.open(CACHE_NAME).then(function(cache) {
cache.put(event.request, responseClone);
});
return response;
});
}).catch(function() {
return caches.match("/offline.html");
})
);
}
}
});
Run Code Online (Sandbox Code Playgroud)
下面是我的网络请求的console.log(离线时页面刷新)
Request …Run Code Online (Sandbox Code Playgroud)