小编Dav*_*son的帖子

在Cygwin上安装Pip-3.2

我在Cygwin上安装了Python 3.但是,我无法通过安装Python 3包pip.有没有办法做到这一点?

python cygwin pip python-3.x

83
推荐指数
4
解决办法
8万
查看次数

递归Git推/拉?

我有一个包含其他git存储库的git存储库.是否存在以递归方式推送和/或拉取元存储库而不是子存储库的命令?

git recursion push pull

22
推荐指数
3
解决办法
1万
查看次数

使用vanilla JavaScript在客户端处理Firebase ID令牌

我正在使用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

16
推荐指数
1
解决办法
3038
查看次数

Python Windows Installer具有所有依赖项?

我在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)

python windows installer pypi python-3.x

14
推荐指数
1
解决办法
2292
查看次数

使用Python正则表达式逐行划分

我有一个字符串:

"""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)

我很确定我应该使用正则表达式,但是,由于没有经验,我很难弄清楚如何做到这一点.

python regex string split

14
推荐指数
1
解决办法
3万
查看次数

在列表中查找子列表的开始和结束索引

我有一个清单:

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)

建议?

python search list sublist

10
推荐指数
1
解决办法
7287
查看次数

Firebase Cloud Messaging无托管(Web/JavaScript)

在完成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)

javascript firebase firebase-cloud-messaging

10
推荐指数
1
解决办法
545
查看次数

在Cygwin上安装Python 3.3

我在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)

python cygwin install python-3.x python-3.3

8
推荐指数
1
解决办法
3265
查看次数

Python:除了保留换行符之外,首先缩进字符串的所有行?

我想缩进除第一行之外的多行字符串的所有行,而不包装文本.

例如,我想转:

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)

但这仍然将所有文本放在一行.思考?

python string text indentation word-wrap

7
推荐指数
1
解决办法
6039
查看次数

在本地托管的Firebase应用程序中使用本地模拟的https.onCall Firebase功能

我正在使用客户端的节点SDK和vanilla JavaScript编写Firebase应用程序.我正在使用Firebase Cloud Functions来实现一个服务器,该服务器接收我的页面路由请求并使用该https.onRequest方法返回呈现的HTML .我还使用云功能来处理客户端 - 服务器与https.onCall方法的交互.

我使用该firebase serve命令在本地开发.在本地开发时,我的客户端似乎忽略了我的本地onCall功能,而是调用已部署onCall功能的路由.我被迫部署我的onCall功能,以便在本地查看更改.如果我不部署每个更改,我的本地应用程序将不会显示任何onCall功能更改.出现这种情况我是否运行firebase servefirebase 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云功能?

我不是在制作单页应用程序或使用任何视图框架.

firebase google-cloud-platform google-cloud-functions

7
推荐指数
2
解决办法
634
查看次数

FirebaseUI-在创建用户之前验证displayName

我正在使用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

7
推荐指数
1
解决办法
245
查看次数

Vim:搜索模式并将文本添加到每行发生的末尾

我想在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)

vim search replace

6
推荐指数
1
解决办法
3003
查看次数

适用于所有文档的通用 Firestore 触发器

如何在 Firestore 中的任何集合中的任何文档更改时触发函数?我想管理createdAtupdatedAt时间戳。我有很多集合,不想为每个集合单独注册触发器。在这一点上我还不如直接创建包装函数addsetupdate

如何注册在修改任何文档时触发的回调?

编辑:

这个时候(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

3
推荐指数
1
解决办法
1374
查看次数