我有以下函数来监听数据库触发器的onWrite事件,如下所示:
exports.sendNotifications = functions.database.ref('/events/{eventId}/registered')
.onWrite(event => {
...
});
Run Code Online (Sandbox Code Playgroud)
无论是删除还是添加节点,都会调用上述函数.如何检查onWrite事件是否为该特定节点的"删除"事件或"添加"事件,以便仅在"添加"事件时才调用此函数.
我正在编写一个条形码阅读器应用程序,但无法检测线性类型条形码,即代码 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) 我正在尝试创建一个自定义 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)
我真的已经用尽了网上资源搜索。接下来我可以尝试什么?
在我的终端上升级到 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位版本。
我正在尝试使用组合框架执行并发 API 调用。API 调用的设置如下:
Postspost,调用另一个 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) 我试图从字符串数组的后面删除""& ,直到最后一项包含一些文本,但我的实现没有拾取." "" "
到目前为止我的实现:
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" "
有什么建议为什么它不接听吗" "?
我正在尝试使用 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 的 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) 我正在创建一个模糊视图的叠加层,中间有一个清晰的矩形切口。到目前为止,我的代码实现了相反的效果,即在中间带有模糊切口的 clearView。
我已经从以下帖子中调整了我的步骤,如果有人能指出我正确的方向,我将不胜感激。
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) 我正在尝试检查字符串是否以遵循正则表达式模式的文本开头。有没有办法使用 来做到这一点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) 我已经训练了一些 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)
我还尝试使用简单的 …
我引用了这篇文章,并希望将字段中选定的键值对转换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)