小编Jak*_*ake的帖子

使用Firebase自动完成

如何使用Firebase进行基本的自动完成/文本预览?

例如,想象一下由Firebase支持的博客,其中博主可以使用标签标记帖子.由于博主正在标记新帖子,如果他们能够看到所有当前存在的标签与他们输入的前几次击键相匹配将会很有帮助.因此,如果"博客","黑色","炽热的马鞍"和"斗牛犬"都是标签,如果用户输入"bl",他们会得到前三个而不是"斗牛犬".

我最初的想法是我们可以使用标记的优先级设置标记,并使用startAt,这样我们的查询看起来像:

fb.child('tags').startAt('bl').limitToFirst(5).once('value', function(snap) {
  console.log(snap.val()) 
});
Run Code Online (Sandbox Code Playgroud)

但这也会使"斗牛犬"成为结果之一(不是世界末日,也不是最好的).使用startAt('bl').endAt('bl')不返回任何结果.还有另一种方法来实现这一目标吗?

(我知道有一个选择是我们可以使用搜索服务器,比如ElasticSearch,请参阅https://www.firebase.com/blog/2014-01-02-queries-part-two.html - 但我希望尽可能多地保留在Firebase中.)

编辑

正如加藤所说,这是一个具体的例子.我们有20,000个用户,其名称存储如下:

/users/$userId/name
Run Code Online (Sandbox Code Playgroud)

通常,用户将按名称查找其他用户.当用户正在查找他们的好友时,我们想要一个下拉列表来填充名称以搜索者输入的字母开头的用户列表.因此,如果我输入"Ja",我会期望在下拉列表中看到"Jake Heller","jake gyllenhaal","Jack Donaghy"等.

autocomplete firebase

16
推荐指数
2
解决办法
9270
查看次数

如何在Heroku上安装libffi-dev?

我需要在我的Heroku服务器上运行libffi-dev来编译我正在使用的一些软件包.如何在Heroku上安装这样的依赖项?

heroku

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

Microsoft Edge中的站点引发错误(但不是任何其他浏览器)

在Microsoft Edge中加载我们网站上的页面时,您有时会看到以下错误(即,它发生约1/3次):

此页面正在加载问题

我们尝试为您加载此页面几次,但此网站仍存在问题.我们知道你有更好的事情要做,而不是一遍又一遍地重新加载这个页面所以请稍后再回到这个页面.

在显示错误之前,页面看起来像重新加载一次或两次.我们在任何其他主要浏览器(IE 9-11,Chrome,FireFox等)中都没有看到相同的问题,并且没有控制台错误(尽管有一些警告).

以下是显示的控制台警告:

  • 此页面上的代码禁用了后退和前进缓存
  • 评论错误.评论应该从<!--.(具体指代包含早期版本IE的条件格式的代码行.)

以下是我们网站上我们看到此错误的页面示例:https://casetext.com/case/cole-taylor-bank-v-corrigan

对于它的价值,我们是1.4.4版本的AngularJS网站,我们正在使用ui-router进行路由.

javascript angularjs microsoft-edge

6
推荐指数
0
解决办法
4915
查看次数

Django通过向上/向下投票进行线程评论(如Hacker News或Reddit)

我是Django的新手.我正在尝试在Django中构建一个讨论应用程序,像Reddit和Hacker News一样,是完全线程化的,并通过上/下投票对每个评论进行排序.

我一直在使用django投票应用程序,并希望尽可能继续使用它.

我的models.py的简化版本是:

Class Comment(models.Model):
    text = models.TextField()
    user = models.ForeignKey(User)
    parent = models.ForeignKey('self', related_name='children', null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

因为我正在使用django-voting应用程序,所以我可以获得任何特定评论的"得分"(upvotes minus downvotes),如下所示:

comment = Comment.objects.get(pk=1) # Grab the comment with primary key = 1
score = Vote.objects.get_score(comment)["score"]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何:(a)在一个视图中准备数据,格式可以转换为模板中的线程讨论,以及(b)如何按照排序的方式这样做upvotes.

对这两个问题的任何帮助将不胜感激.

我愿意使用另一种方法,比如mptt,来构建评论树 - 但我仍然不清楚如何在django-mptt应用程序中通过upvote进行排序.

谢谢!

编辑: 我已经提出了我自己的,非常黑客的解决方案.我不打算将这个问题标记为已回答,因为我不认为这是在生产中使用的那种解决方案(我希望自己不会在生产中使用它).但是,万一有人在寻找一个解决方案,我希望这是有帮助的:

在我的views.py中,我创建了一个函数,在给定对象的查询集的情况下,通过投票输出排序列表:

def list_sorted_by_score(query_set):
    sorted_score_list = []

    # First, I create a list of all the objects with their associated scores
    for object in query_set:
        # django-voting's get_score outputs a dictionary that looks like:
        # …
Run Code Online (Sandbox Code Playgroud)

django threaded-comments django-voting

5
推荐指数
0
解决办法
1540
查看次数

如果你指向一个站点地图托管在不同的域上会不会影响搜索引擎优化?

我们定期使用a计算我们的站点地图cron job并将结果存储在中s3.

我们可以301https://oursite.com/sitemap.xml重定向到托管在的sitemap.xml s3吗?

我知道站点地图规范要求站点地图位于同一个域(http://www.sitemaps.org/protocol.html#location).不过,如果一个301一个off-domain URL通过各大搜索服务提供商被视为是在同一个域或关闭呢?

sitemap seo

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