小编Koh*_*Koh的帖子

Firebase:检查onWrite事件的"写入或删除"

我有以下函数来监听数据库触发器的onWrite事件,如下所示:

exports.sendNotifications = functions.database.ref('/events/{eventId}/registered')
        .onWrite(event => {

            ...
         });
Run Code Online (Sandbox Code Playgroud)

无论是删除还是添加节点,都会调用上述函数.如何检查onWrite事件是否为该特定节点的"删除"事件或"添加"事件,以便仅在"添加"事件时才调用此函数.

javascript firebase google-cloud-functions

10
推荐指数
4
解决办法
3422
查看次数

Swift:无法检测线性类型条形码

我正在编写一个条形码阅读器应用程序,但无法检测线性类型条形码,即代码 128。我对 Qr 代码、EAN13 类型和 ISBN 类型没有任何问题。我的代码非常简单:

func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {

        if metadataObjects.count != 0 {
            if let object = metadataObjects[0] as? AVMetadataMachineReadableCodeObject {
                if object.type == AVMetadataObject.ObjectType.qr {
                    if let text = object.stringValue {
                        print(text)

                        session.stopRunning()

                        let alertVC = UIAlertController(title: "QR Code", message: text, preferredStyle: UIAlertControllerStyle.alert)
                        alertVC.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in
                            self.session.startRunning()
                        }))
                        present(alertVC, animated: true, completion: nil)
                    }
                } else {
                    if let text = object.stringValue {
                        print("Other …
Run Code Online (Sandbox Code Playgroud)

barcode-scanner swift

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

自定义 MKMarkerAnnotationView Like Photos 应用程序

我正在尝试创建一个自定义 pinView,就像照片应用程序的操作方式一样:

在此输入图像描述

到目前为止,我可以在 SO 或此处此处找到的大多数资源都显示了自定义图钉图像或标注视图的方法,但没有关于标记本身的自定义视图的资源。

最终,我想要实现的目标类似于照片应用程序,其中标记本身上显示的每个图像都是用户的个人资料图像,但是是圆形视图。到目前为止我的代码非常基本:

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
        var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "pin") as? MKMarkerAnnotationView
        
        if annotationView == nil {
            annotationView = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: "pin")
            annotationView?.canShowCallout = true
            annotationView?.leftCalloutAccessoryView = UIImageView(image: UIImage(named: "profileImage"))
        } else {
            annotationView?.annotation = annotation
        }
        
        return annotationView
    }
Run Code Online (Sandbox Code Playgroud)

我真的已经用尽了网上资源搜索。接下来我可以尝试什么?

swift

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

升级到 macOS Catalina 后找不到 google-cloud-sdk .bash.inc

在我的终端上升级到 macOS Catalina 后,每当启动新终端时,我都会遇到以下消息:

/Users/<myname>/Downloads/google-cloud-sdk/path.bash.inc:3: = not found
/Users/<myname>/Downloads/google-cloud-sdk/completion.bash.inc:56: command not found: complete
/Users/<myname>/Downloads/google-cloud-sdk/completion.bash.inc:81: command not found: complete
/Users/<myname>/Downloads/google-cloud-sdk/completion.bash.inc:82: command not found: complete 
Run Code Online (Sandbox Code Playgroud)

我已经重新运行./install.sh命令并且gcloud命令工作正常。如何删除上述消息,或者是否还缺少其他内容?

编辑:

升级到macOS 10.15.4并安装google-cloud-sdk来自这里,macOS 64位版本。

macos google-cloud-platform macos-catalina

6
推荐指数
2
解决办法
6351
查看次数

Swift:如何使用组合执行并发 API 调用

我正在尝试使用组合框架执行并发 API 调用。API 调用的设置如下:

  1. 首先,调用API获取列表Posts
  2. 对于每个post,调用另一个 API 来获取Comments

我想使用组合将这两个调用同时链接在一起,以便它返回一个 Post 对象数组,每个帖子都包含评论数组。

我的尝试:

struct Post: Decodable {
    let userId: Int
    let id: Int
    let title: String
    let body: String
    var comments: [Comment]?
}

struct Comment: Decodable {
    let postId: Int
    let id: Int
    let name: String
    let email: String
    let body: String
}

class APIClient: ObservableObject {
    @Published var posts = [Post]()
    
    var cancellables = Set<AnyCancellable>()
    
    init() {
        getPosts()
    }
    
    func getPosts() {
        let urlString = "https://jsonplaceholder.typicode.com/posts" …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

Swift 中的条件删除集合的最后一个元素

我试图从字符串数组的后面删除""& ,直到最后一项包含一些文本,但我的实现没有拾取." "" "

到目前为止我的实现:

var array = ["A", "B", "", "C", "D", " ", " ", ""]

while true {
    if (array.last == " " || array.last == "") {
        array.removeLast()
    } else {
        break
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要的输出是

["A", "B", "", "C", "D"]
Run Code Online (Sandbox Code Playgroud)

,但我当前的输出是

["A", "B", "", "C", "D", " ", " "]
Run Code Online (Sandbox Code Playgroud)

,其中在遇到后while立即循环breaks" "

有什么建议为什么它不接听吗" "

swift

5
推荐指数
2
解决办法
1585
查看次数

SwiftUI WidgetKit:如何将视图锚定到顶部

我正在尝试使用 SwiftUI 和 WidgetKit 布局 tableView,并希望获得与 Apple 的 Notes 小部件类似的结果。

我当前的实现成功地在.systemLarge小部件中布置了视图,但在.systemMedium小部件中却没有。我想将视图固定到小部件的顶部,以便“收藏夹”的标题在.systemMedium.

struct PlacesWidgetEntryView : View {
    var entry: Provider.Entry

    let places = [
        Place(name: "Place 1", imageName: "baseline_star_black_24pt"),
        Place(name: "Place 2", imageName: "baseline_star_black_24pt"),
        Place(name: "Place 3", imageName: "baseline_star_black_24pt"),
        Place(name: "Place 4", imageName: "baseline_star_black_24pt"),
        Place(name: "Place 5", imageName: "baseline_star_black_24pt"),

    ]
    
    var body: some View {
        VStack {
            //Header
            HStack {
                Text("FAVOURITES")
                    .bold()
                    .frame(height: 8)
                Spacer()
            }
            .padding()
            .background(Color.blue)

            //TableView
            LazyVStack {
                ForEach(places, id: \.self) { …
Run Code Online (Sandbox Code Playgroud)

ios swift widgetkit swiftui

5
推荐指数
1
解决办法
996
查看次数

FCM iOS:推送通知抛出无效参数

我正在尝试使用适用于 iOS 的 Cloud Functions 和 FCM 实现推送通知,但我始终抛出此错误:

2018-05-21T13:04:00.087ZI sendPushNotifications:发送消息时出错:{错误:请求包含无效参数。在 FirebaseMessagingError.Error (本机) 在 FirebaseMessagingError.FirebaseError [作为构造函数] (/user_code/node_modules/firebase-admin/lib/utils/error.js:39:28) 在 FirebaseMessagingError.PrefixedFirebaseError [作为构造函数] (/user_code/node_modules) /firebase-admin/lib/utils/error.js:85:28) 在新的 FirebaseMessagingError (/user_code/node_modules/firebase-admin/lib/utils/error.js:241:16) 在 Function.FirebaseMessagingError.fromServerError (/ user_code/node_modules/firebase-admin/lib/utils/error.js:271:16) 在 /user_code/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:149:50 在 process._tickDomainCallback ( Internal/process/next_tick.js:135:7) errorInfo: { code: 'messaging/invalid-argument', message: '请求包含无效参数。' }, codePrefix: '消息' }

我在云函数中的实现如下:

exports.sendPushNotifications = functions.database.ref('/conversations/{userUid}/').onWrite((snap, context) => {
    const userUid = context.params.userUid

    console.log("Triggered user ", userUid)

    return admin.database().ref('/fcmToken/' + userUid).once('value', snapshot => {
        const values = snapshot.val()
        const fcmToken = values.fcmToken

        var message = {
            "token": fcmToken, …
Run Code Online (Sandbox Code Playgroud)

node.js firebase firebase-cloud-messaging

4
推荐指数
1
解决办法
3632
查看次数

创建一个清晰的blurView

我正在创建一个模糊视图的叠加层,中间有一个清晰的矩形切口。到目前为止,我的代码实现了相反的效果,即在中间带有模糊切口的 clearView。

我已经从以下帖子中调整了我的步骤,如果有人能指出我正确的方向,我将不胜感激。

UIView 上圆形图层的快速蒙版

带有透明孔的 CALayer

let blurView = UIVisualEffectView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height))
blurView.effect = UIBlurEffect(style: UIBlurEffectStyle.dark)

let scanLayer = CAShapeLayer()
scanLayer.path = CGPath(rect: scanRect, transform: nil)

view.addSubview(blurView)
blurView.layer.addSublayer(scanLayer)
blurView.layer.mask = scanLayer
Run Code Online (Sandbox Code Playgroud)

ios swift uiblureffect uivisualeffectview

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

Swift:使用正则表达式检查前缀

我正在尝试检查字符串是否以遵循正则表达式模式的文本开头。有没有办法使用 来做到这一点string.hasPrefix()

到目前为止我的实现:

let pattern = "[Ff][Yy][Ii](.)?"
let regex = try? NSRegularExpression(pattern: pattern, options: [])

if firstRowText.hasPrefix(regex) { //Cannot convert value of type NSRegularExpression to String

}
Run Code Online (Sandbox Code Playgroud)

regex swift

2
推荐指数
1
解决办法
952
查看次数

spaCy:在 GCloud 上部署时找不到模型“en”

我已经训练了一些 NLP 模型,并且还完成了一个 Flask 应用程序来将模型封装到一个 API 中供前端客户端调用。一切都很好,直到我尝试按照此处的教程在 Google Cloud 的 App Engine 上部署 Flask 应用程序。

在 GCloud 上,我使用 Cloud Shell 部署 Flask 应用程序gcloud app deploy,但它不断抛出错误:

OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
Run Code Online (Sandbox Code Playgroud)

我还尝试了许多其他 SO 帖子中提出的各种解决方案,但都没有解决问题:

python3 -m spacy download en
python3 -m spacy download en_core_web_sm
sudo python3 -m spacy download en
sudo python3 -m spacy download en_core_web_sm
Run Code Online (Sandbox Code Playgroud)

我还尝试使用简单的 …

python google-app-engine gcloud spacy

2
推荐指数
1
解决办法
538
查看次数

BigQuery:将数组中的键值对转换为列

我引用了这篇文章,并希望将字段中选定的键值对转换event_params为列。我的桌子是这样的:

| user_id | event_params.key | event_params.value.string_value |
+---------+------------------+---------------------------------+
|  1      |               k1 |                             v11 |
|         +------------------+---------------------------------+
|         |               k2 |                             v12 |
|         +------------------+---------------------------------+
|         |               k3 |                             v13 |
+---------+------------------+---------------------------------+
|  1      |               k1 |                             v21 |
|         +------------------+---------------------------------+
|         |               k2 |                             v22 |
|         +------------------+---------------------------------+
|         |               k3 |                             v23 |
+---------+------------------+---------------------------------+
|  2      |               k1 |                             v31 |
|         +------------------+---------------------------------+
|         |               k2 |                             v32 |
|         +------------------+---------------------------------+
|         | …
Run Code Online (Sandbox Code Playgroud)

sql google-bigquery

2
推荐指数
1
解决办法
1934
查看次数