小编Gar*_*aye的帖子

Firestore:如何在集合中获取随机文档

对于我的应用程序来说,能够从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

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

如何在Swift中录制带有avfoundation的视频?

我想弄清楚如何在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)

video-capture avfoundation ios swift

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

运算符"+"的模糊使用

所以我在我的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)

backwards-compatibility ios swift xcode6

15
推荐指数
2
解决办法
9201
查看次数

如何使用UIActivityViewController创建用户交互式推文或Facebook帖子

我想弄清楚如何创建一个用户互动帖子或类似SoundCloud的推文,如下所示:

(直接从Sound Cloud共享)

以黄色突出显示的部分是我感兴趣的部分,因为就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工作表,未显示任何共享选项.

我知道有些人可能会认为这是一个广泛的问题,但如果你能够至少指出我正确的方向,我将非常感激.谢谢.

twitter uiactivityviewcontroller swift

12
推荐指数
1
解决办法
206
查看次数

如何将php生成的图像传递给html元标记

我试图将合并后的图像从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)

html php meta-tags php-gd

9
推荐指数
2
解决办法
1231
查看次数

访问云功能中的云Firestore文档

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

firebase google-cloud-functions google-cloud-firestore

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

如何以编程方式在云工具包中标记可查询的记录类型

每当我以编程方式创建新的CKRecordType时,我都会遇到cloud-kit的问题.在云工具包仪表板中,这是我收到的错误消息:在此输入图像描述

快速简单的解决方法是单击"添加ID查询索引"按钮并完成它,但是,我想知道是否有一种方法可以以编程方式完成此操作.原因在于,当部署应用程序时,用户将能够创建新的记录类型,如果每次用户决定创建新记录时我必须检查cloud-kit,那将是一个很大的麻烦和麻烦类型.

任何帮助,将不胜感激!

ios swift cloudkit ckquery

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

AVPlayer seekToTime无法正常工作

我有一个寻找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()如果​​有帮助的话

seek avplayer cmtime swift

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

代码完成下拉建议无法正常工作Xcode 8.0 Swift 3

当您在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对我来说至少不再亮点:属性,项目类名称,项目功能和方法名称,项目常量,项目类型名称,项目即时变量和全局,以及源编辑器中的一些其他类型.但是,在更新之前,关键字,字符串数字类型仍会突出显示.

我曾尝试在"首选项"选项卡中进行修改,但我找不到可以解决这些令人沮丧的问题的选项.请帮忙!

code-editor swift3 xcode8

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

如何删除 CKRecord

如何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)

ios swift cloudkit ckrecord

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

如何使 watchkit 扩展应用程序和我的 iPhone 应用程序共享相同的 icloud 数据库

我正在尝试为苹果手表制作我的应用程序,但我遇到了云容器的问题。当我为手表扩展创建云套件时,它创建了自己的容器/数据库,所以现在我试图让它们共享同一个。我尝试指定我想要的自定义容器,但它不起作用。请帮忙! 在此输入图像描述

iphone ios swift cloudkit watchkit

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