我在Cygwin上安装了Python 3.但是,我无法通过安装Python 3包pip.有没有办法做到这一点?
我有一个包含其他git存储库的git存储库.是否存在以递归方式推送和/或拉取元存储库而不是子存储库的命令?
我正在使用vanilla JavaScript编写Firebase应用程序.我正在使用Firebase身份验证和FirebaseUI for Web.我正在使用Firebase Cloud Functions来实现一个服务器,该服务器接收我的页面路由请求并返回呈现的HTML.我正在努力寻找在客户端使用经过身份验证的ID令牌来访问我的Firebase云功能所服务的受保护路由的最佳做法.
我相信我理解基本流程:用户登录,这意味着ID令牌被发送到客户端,在onAuthStateChanged回调中接收它,然后插入Authorization任何具有正确前缀的新HTTP请求的字段,然后检查当用户尝试访问受保护的路由时由服务器.
我不明白我应该对onAuthStateChanged回调中的ID令牌做什么,或者我应该如何修改我的客户端JavaScript以在必要时修改请求头.
我正在使用Firebase云功能来处理路由请求.这是我的functions/index.js,它导出app所有请求被重定向到的方法以及检查ID标记的位置:
const functions = require('firebase-functions')
const admin = require('firebase-admin')
const express = require('express')
const cookieParser = require('cookie-parser')
const cors = require('cors')
const app = express()
app.use(cors({ origin: true }))
app.use(cookieParser())
admin.initializeApp(functions.config().firebase)
const firebaseAuthenticate = (req, res, next) => {
console.log('Check if request is authorized with Firebase ID token')
if ((!req.headers.authorization || !req.headers.authorization.startsWith('Bearer ')) &&
!req.cookies.__session) {
console.error('No Firebase ID token was passed …Run Code Online (Sandbox Code Playgroud) javascript security firebase firebase-authentication firebaseui
我在PyPI存储库中有一个包.我通过运行以下命令来包含Windows安装程序以上载新版本,特别是'bdist_wininst':
python3 setup.py register sdist bdist_wininst upload
Run Code Online (Sandbox Code Playgroud)
但是,当用户运行关联的.exe文件时,它不会安装Python 3本身.此外,即使安装了Python 3,它也不会安装任何相关的依赖项.
如果没有安装Python 3,以及我的软件包及其依赖项,那么创建安装Python 3的Windows安装程序的最佳方法是什么?
如果那是不可能的,假设安装了Python 3,创建安装我的软件包及其依赖项的Windows安装程序的最佳方法是什么?
我在Ubuntu 12.04上.如果有任何帮助,这是我的setup.py:
from distutils.core import setup
import codecs
try:
codecs.lookup('mbcs')
except LookupError:
ascii = codecs.lookup('ascii')
func = lambda name, enc=ascii: {True: enc}.get(name=='mbcs')
codecs.register(func)
setup(
name='SIGACTor',
version='0.1.14dev',
description=open('README.txt').read(),
url='http://bitbucket.org/davidystephenson/sigactor',
author='David Y. Stephenson',
author_email='david@davidystephenson.com',
packages=['sigactor'],
license='Proprietary',
long_description=open('README.txt').read(),
install_requires=[
'beautifulsoup4',
'feedparser',
'python-dateutil',
'pyyaml'
],
)
Run Code Online (Sandbox Code Playgroud) 我有一个字符串:
"""Hello. It's good to meet you.
My name is Bob."""
Run Code Online (Sandbox Code Playgroud)
我正在尝试找到将其拆分为按句点和换行符划分的列表的最佳方法:
["Hello", "It's good to meet you", "My name is Bob"]
Run Code Online (Sandbox Code Playgroud)
我很确定我应该使用正则表达式,但是,由于没有经验,我很难弄清楚如何做到这一点.
我有一个清单:
greeting = ['hello','my','name','is','bob','how','are','you']
Run Code Online (Sandbox Code Playgroud)
我想定义一个函数,它将在此列表中找到子列表的第一个和最后一个索引.从而:
find_sub_list(['my','name','is'], greeting)
Run Code Online (Sandbox Code Playgroud)
应该返回:
1, 3
Run Code Online (Sandbox Code Playgroud)
建议?
在完成Firebase云消息传递的官方视频教程时,如果没有托管应用程序,我将无法获得消息传递令牌.
这是我的app.js档案:
/* global firebase */
// Initialize Firebase
var config = {
apiKey: 'AIzaSyBYfb9HAi_oE-PKqFNkRQcxAgLU-nm8sIE',
authDomain: 'web-quickstart-c0309.firebaseapp.com',
databaseURL: 'https://web-quickstart-c0309.firebaseio.com',
projectId: 'web-quickstart-c0309',
storageBucket: 'web-quickstart-c0309.appspot.com',
messagingSenderId: '713880824056'
}
firebase.initializeApp(config)
const messaging = firebase.messaging()
messaging.requestPermission()
.then(() => {
console.log('Permission granted.')
return messaging.getToken()
.then(token => {
console.log('messaging token test:', token)
return token
})
.catch(error => {
console.log('messaging error:', error)
})
})
.then(token => {
console.log('permission token test:', token)
})
.catch(error => {
console.log('permission error:', error)
})
Run Code Online (Sandbox Code Playgroud)
firebase-messaging-sw.js我的根目录中有一个文件.
当我index.html直接在浏览器中加载文件并接受对话框时,我收到一个未定义的令牌值.完整的控制台输出是:
16:20:35.744 …Run Code Online (Sandbox Code Playgroud) 我在Cygwin上安装Python 3.3时遇到问题.我尝试从源代码安装,但make返回:
gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -DPy_BUILD_CORE -c ./Modules/signalmodule.c -o Modules/signalmodule.o
In file included from Include/Python.h:84:0,
from ./Modules/signalmodule.c:6:
./Modules/signalmodule.c: In function `fill_siginfo':
./Modules/signalmodule.c:745:60: error: `siginfo_t' has no member named `si_band'
PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(si->si_band));
^
Include/tupleobject.h:62:75: note: in definition of macro `PyTuple_SET_ITEM'
#define PyTuple_SET_ITEM(op, i, v) (((PyTupleObject *)(op))->ob_item[i] = v)
^
./Modules/signalmodule.c:745:5: note: in expansion of macro `PyStructSequence_SET_ITEM'
PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(si->si_band));
^
Makefile:1501: recipe for target `Modules/signalmodule.o' failed
make: *** [Modules/signalmodule.o] Error …Run Code Online (Sandbox Code Playgroud) 我想缩进除第一行之外的多行字符串的所有行,而不包装文本.
例如,我想转:
A very very very very very very very very very very very very very very very very
long mutiline
string
Run Code Online (Sandbox Code Playgroud)
成:
A very very very very very very very very very very very very very very very very
long multiline
string
Run Code Online (Sandbox Code Playgroud)
我试过了
textwrap.fill(string, width=999999999999, subsequent_indent=' ',)
Run Code Online (Sandbox Code Playgroud)
但这仍然将所有文本放在一行.思考?
我正在使用客户端的节点SDK和vanilla JavaScript编写Firebase应用程序.我正在使用Firebase Cloud Functions来实现一个服务器,该服务器接收我的页面路由请求并使用该https.onRequest方法返回呈现的HTML .我还使用云功能来处理客户端 - 服务器与https.onCall方法的交互.
我使用该firebase serve命令在本地开发.在本地开发时,我的客户端似乎忽略了我的本地onCall功能,而是调用已部署onCall功能的路由.我被迫部署我的onCall功能,以便在本地查看更改.如果我不部署每个更改,我的本地应用程序将不会显示任何onCall功能更改.出现这种情况我是否运行firebase serve或firebase serve --only=hosting,functions.
当我在本地运行我的应用程序时firebase serve,页面通常托管在localhost:5000.这些功能托管在localhost:5001.如果我在其中一个本地托管页面上调用云功能,例如firebase.functions().httpsCallable('functionName')并查看我的开发人员工具中的"网络"面板,我可以看到请求URL https://us-central1-<app-name>.cloudfunctions.net/<functionName>,而不是localhost:5001/<app-name>/us-central1/<functionName>.
这让我感到很沮丧,因为这意味着我必须部署我的函数来测试每个更改,而不是通过我本地托管的Web应用程序测试我的本地函数.
我配置错误了吗?如何让我的本地托管应用程序使用我的本地模拟onCall云功能?
我不是在制作单页应用程序或使用任何视图框架.
我正在使用firebaseui-web-react。在注册流程中,我想displayName在创建用户之前验证用户提供的信息。特别是,我想确保displayName唯一。
我知道如何使用Firestore验证唯一的用户名。我有一个user带有displayName字段的公共收藏。我知道如何查看a displayName是否已被接受,并带有如下查询:
const snapshot = await store
.collection('user')
.where('displayName', '==', displayNameFormValue)
.get()
return snapshot.empty
Run Code Online (Sandbox Code Playgroud)
我想displayName在创建用户之前验证。我想避免创建并立即删除用户。我想displayName在FirebaseUI发送创建用户的请求之前验证。
但是,FirebaseUI仅提供像这样的回调signInSuccessWithAuthResult。这些回调仅在创建用户之后运行。如果我使用这些回调来验证displayName,则如果使用了创建的用户,则必须追溯删除该用户displayName。我想displayName在创建用户之前对其进行验证,以避免删除。
displayName在创建Firebase用户之前,如何使用上面显示的查询来验证?在利用预制的FirebaseUI组件和上下文时,如何支持唯一的显示名称?如何将表单验证与FirebaseUI集成在一起?
firebase reactjs firebase-authentication firebaseui google-cloud-firestore
我想在vim中搜索一个模式,并在它出现的每一行上,将文本添加到行的末尾.例如,如果搜索模式是print(,则要添加的文本是):
from __future__ import print_function
print('Pausing 30 seconds...'
print("That's not a valid year!"
Run Code Online (Sandbox Code Playgroud)
应该成为
from __future import print_function
print('Pausing 30 seconds...')
print("That's not a valid year!")
Run Code Online (Sandbox Code Playgroud) 如何在 Firestore 中的任何集合中的任何文档更改时触发函数?我想管理createdAt和updatedAt时间戳。我有很多集合,不想为每个集合单独注册触发器。在这一点上我还不如直接创建包装函数add,set和update。
如何注册在修改任何文档时触发的回调?
编辑:
这个时候(2019-08-22),我决定只创建一个包装函数来实现这个功能。接受的答案不保持无模式。基于这篇文章,我创建了这个upset函数来管理时间戳并避免“文档不存在”错误:
const { firestore: { FieldValue } } = require('firebase-admin')
module.exports = async function upset (doc, data = {}) {
const time = FieldValue.serverTimestamp()
const update = { updatedAt: time }
const updated = { ...data, ...update }
try {
const snapshot = await doc.get()
if (snapshot.exists) {
return doc.update(updated)
} else {
const create = { createdAt: time }
const …Run Code Online (Sandbox Code Playgroud) triggers firebase google-cloud-functions google-cloud-firestore
python ×6
firebase ×5
python-3.x ×3
cygwin ×2
firebaseui ×2
javascript ×2
search ×2
string ×2
git ×1
indentation ×1
install ×1
installer ×1
list ×1
pip ×1
pull ×1
push ×1
pypi ×1
python-3.3 ×1
reactjs ×1
recursion ×1
regex ×1
replace ×1
security ×1
split ×1
sublist ×1
text ×1
triggers ×1
vim ×1
windows ×1
word-wrap ×1