对于我的应用程序来说,能够从firebase中的集合中随机选择多个文档至关重要.
由于Firebase(我知道)没有内置本机函数来实现这样做的查询,我首先想到的是使用查询游标来选择随机的开始和结束索引,前提是我有多少文档集合.
这种方法只能以有限的方式起作用,因为每个文件都会按照其相邻文件的顺序提供; 但是,如果我能够通过其父集合中的索引选择文档,我可以实现随机文档查询,但问题是我找不到任何描述如何执行此操作的文档,即使您可以执行此操作.
这是我想要做的,考虑以下firestore架构:
root/
posts/
docA
docB
docC
docD
Run Code Online (Sandbox Code Playgroud)
然后在我的客户端(我在Swift环境中)我想编写一个可以执行此操作的查询:
db.collection("posts")[0, 1, 3] // would return: docA, docB, docD
Run Code Online (Sandbox Code Playgroud)
无论如何我能做到这一点吗?或者,有不同的方式我可以以类似的方式选择随机文档吗?
请帮忙.
database data-modeling firebase swift google-cloud-firestore
我想弄清楚如何在Swift中使用AVFoundation录制视频.我已经创建了一个自定义相机,但我只知道如何拍摄静态照片,我无法弄清楚如何录制视频.根据我的理解,您必须使用AVCaptureVideoDataOutput
从录制中获取数据,但我无法弄清楚如何开始录制并实现委托方法.
整个AVFoundation编程指南/静态和视频媒体捕获是在Objective-C中,我似乎无法解读它.这是我完成这项任务的尝试:
首先,我设置了摄像头/捕获会话
override func viewDidLoad() {
super.viewDidLoad()
captureSession.sessionPreset = AVCaptureSessionPresetHigh
let devices = AVCaptureDevice.devices()
for device in devices {
if (device.hasMediaType(AVMediaTypeVideo)) {
if(device.position == AVCaptureDevicePosition.Back) {
captureDevice = device as? AVCaptureDevice
if captureDevice != nil {
beginSession()
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后一旦调用beginSession(),我就设置了实时源
func beginSession() {
var err : NSError? = nil
captureSession.addInput(AVCaptureDeviceInput(device: captureDevice, error: &err))
if err != nil {
println("error: \(err?.localizedDescription)")
}
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.cameraView.layer.addSublayer(previewLayer)
self.cameraView.bringSubviewToFront(takePhotoButton)
self.cameraView.bringSubviewToFront(self.snappedPicture)
self.cameraView.bringSubviewToFront(self.backButton)
previewLayer?.frame = self.cameraView.layer.frame
captureSession.startRunning()
} …
Run Code Online (Sandbox Code Playgroud) 所以我在我的Xcode项目中有这个小算法,它不再有效 - 它告诉我,无论我尝试什么,我都无法将数字添加到另一个数字.
注意:
在将目标更改为iOS 7.0之前,一切都运行良好.
我不知道这与它有什么关系,但即使我把它切换回iOS 8它也给了我一个错误,我的构建失败了.
码:
var delayCounter = 100000
for loop in 0...loopNumber {
let redDelay: NSTimeInterval = NSTimeInterval(arc4random_uniform(100000) + delayCounter) / 30000
let blueDelay: NSTimeInterval = NSTimeInterval(arc4random_uniform(100000) + delayCounter) / 30000
let yellowDelay: NSTimeInterval = NSTimeInterval(arc4random_uniform(100000) + delayCounter) / 30000
let greenDelay: NSTimeInterval = NSTimeInterval(arc4random_uniform(100000) + delayCounter) / 30000
}
Run Code Online (Sandbox Code Playgroud) 我想弄清楚如何创建一个用户互动帖子或类似SoundCloud的推文,如下所示:
以黄色突出显示的部分是我感兴趣的部分,因为就UIActivityViewController(这是Sound Cloud用于此目的)而言,我可以分辨出唯一可用于共享的对象是图像和字符串.
此外,如果你点击黄色突出显示的部分,这个屏幕会弹出twitter:
他们怎么做!?他们有一个暂停按钮和一切!
这是我尝试这样做的......
func displayShareSheet(shareContent:String) {
let someView:CustomView = CustomView() // CustomView is a subclass of UIView
let activityViewController = UIActivityViewController(activityItems: [someView], applicationActivities: nil)
presentViewController(activityViewController, animated: true, completion: {})
}
Run Code Online (Sandbox Code Playgroud)
......哪个不起作用.弹出UIActivityViewController工作表,未显示任何共享选项.
我知道有些人可能会认为这是一个广泛的问题,但如果你能够至少指出我正确的方向,我将非常感激.谢谢.
我试图将合并后的图像从php传递到html元标记(如果你想知道的话,可以推送一个推特摘要卡)但是图像的数据没有被传递.当我运行此代码时,我从html或php得到没有错误:
PHP
$dest = imagecreatefromjpeg('http://www.website.com/Some-images/'.$postID.'.jpg');
$src = imagecreatefromjpeg('http://www.website.com/media/dog.jpg');
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100);
Run Code Online (Sandbox Code Playgroud)
HTML
<meta name="twitter:image" content="'.$dest.'">
Run Code Online (Sandbox Code Playgroud)
我不是100%确定你甚至可以将原始图像传递到元标记的content属性中,但我认为应该有办法做到这一点,我也在想这就是造成这种情况的原因图像不显示.如果不能使用php解决方案,我会接受html/css解决方案.我已经坚持了一段时间,所以你可能会有任何建议和意见,将会非常感激.谢谢!
编辑
我应该补充一点,这是一个PHP脚本,所以html是这样创建的:
$html = '
<html>
<head>
<meta name="twitter:image" content="'.$dest.'">
</head>
<body>
</body>
</html>
';
echo $html;
Run Code Online (Sandbox Code Playgroud) 在我的Google Firebase Firstore数据库中,我想收集汇总数据,例如集合中有多少文档.由于Firestore不提供聚合查询,因此我尝试编写一个云函数,每次将文档添加到数据库时都会增加一个字段,该数据库将包含集合所具有的文档数.
我遇到的问题是我不能为我的生活弄清楚如何使用nodejs在云功能中从Firestore获取文档.
这是我正在做的事情:
在我的index.js
文件的顶部,我配置管理SDK,你喜欢这个:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
Run Code Online (Sandbox Code Playgroud)
那么对于我的云功能,我这样做:
exports.createPost = functions.firestore
.document('posts/{post_id}')
.onCreate(event => {
// Get the post object
var post = event.data.data();
var senderID = post["sender_id"]; // This is not null
// Access to user's document and the main ledger document
const userDocRef = admin.database().ref('/users').orderByChild("user_id").equalTo(senderID).once('value')
const ledgerDocRef = admin.database().ref('/posts/ledger').once('value');
return Promise.all([userDocRef, ledgerDocRef]).then(snapshot => {
const user = snapshot[0].val();
const ledger = snapshot[1].val();
console.log("user => "+user); // Logs: user …
Run Code Online (Sandbox Code Playgroud) 每当我以编程方式创建新的CKRecordType时,我都会遇到cloud-kit的问题.在云工具包仪表板中,这是我收到的错误消息:
快速简单的解决方法是单击"添加ID查询索引"按钮并完成它,但是,我想知道是否有一种方法可以以编程方式完成此操作.原因在于,当部署应用程序时,用户将能够创建新的记录类型,如果每次用户决定创建新记录时我必须检查cloud-kit,那将是一个很大的麻烦和麻烦类型.
任何帮助,将不胜感激!
我有一个寻找AVPlayer.seekToTime的问题,我有一个我想在scrollViewDidScroll方法中寻找的时间索引,如下所示:
func scrollViewDidScroll(scrollView: UIScrollView) {
let offsetTime = scrollView.contentOffset.y * 0.1
self.playerController.player?.seekToTime(CMTime(seconds: Double(offsetTime), preferredTimescale: 10), toleranceBefore: kCMTimePositiveInfinity, toleranceAfter: kCMTimeZero)
}
Run Code Online (Sandbox Code Playgroud)
但视频不流畅.例如,当你滚动时我希望视频只能向前移动0.01秒(我拥有的视频实际上只有2.0秒长)但是当你滚动得足够远时,视频会向前移动几乎一秒钟.它真的起伏不定,我不知道为什么我不能试着说1.00秒到1.01秒并且让图像代表玩家移动的时间指数.这可能吗?我究竟做错了什么?请帮忙!
PS:我从不打电话给self.playerController.player?.play()如果有帮助的话
当您在Xcode中编写代码时,我遇到了代码完成下拉建议菜单的问题.以前你可以输入类似的东西:
button.frame = CGRect(
Run Code Online (Sandbox Code Playgroud)
此时您不必手动填写所有参数,代码完成建议下拉菜单应该出现并提供自动完成的建议,然后您只需点击适合您需要的那个,最终得到如下结果: (来自上面的例子)
button.frame = CGRect(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat)
Run Code Online (Sandbox Code Playgroud)
那么你所要做的就是填写参数.在我从Xcode 7.3.1更新到最新版本(Xcode 8)之后由于某种原因我失去了这个惊人的功能; 但是,Xcode仍然显示代码完成建议下拉菜单,但它不一样,它只包含我编写的变量和甚至不属于我正在编辑的对象的属性.
此外,Xcode 8.0对我来说至少不再亮点:属性,项目类名称,项目功能和方法名称,项目常量,项目类型名称,项目即时变量和全局,以及源编辑器中的一些其他类型.但是,在更新之前,关键字,字符串和数字类型仍会突出显示.
我曾尝试在"首选项"选项卡中进行修改,但我找不到可以解决这些令人沮丧的问题的选项.请帮忙!
如何CKRecord
在客户端以编程方式从我的数据库中删除 a 。
for record in records {
if recordNumber < 13 {
let moodRecord:CKRecord = record as! CKRecord
self.moodArray.append(moodRecord.objectForKey("Color") as! String)
}
else if recordNumber > 13 {
// DELETE RECORD HERE
record.delete(CKRecord)
recordNumber--
}
recordNumber++
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为苹果手表制作我的应用程序,但我遇到了云容器的问题。当我为手表扩展创建云套件时,它创建了自己的容器/数据库,所以现在我试图让它们共享同一个。我尝试指定我想要的自定义容器,但它不起作用。请帮忙!