3

在这个贴纸和贴纸包的 Firebase App Indexing 示例代码中,似乎有两种不同的方法可以将“贴纸”与“贴纸包”相关联。

在方法 1 中,您创建一个 StickerPack,然后通过使用名为“hasSticker”的键调用 put 将贴纸与它关联:

方法#1

new Indexable.Builder("StickerPack")
   .setName("Snoopy Pack")
   .setImage("content://sticker/pack/canonical/image")
   // see: Support links to your app content section
   .setUrl("http://sticker/pack/canonical/url/snoopy")
   // Set the accessibility label for the sticker pack.
   .setDescription("A sticker pack of Snoopy")
   .put("hasSticker",
        new Indexable.Builder("Sticker")
          .setName("Hey")
          .setImage("http://link/to/the/image/hey")
          .setDescription("A Snoopy hey sticker.")
          .build(),
       new Indexable.Builder("Sticker")
          .setName("Bye")
          .setImage("http://link/to/the/image/bye")
          .setDescription("A Snoopy bye sticker.")
          .build())
   .build());

在方法 2 中,您创建一个 Sticker,然后通过使用名为“isPartOf”的键调用 put 将 StickerPack 与它关联:

方法#2

new Indexable.Builder("Sticker")
   .setName("Hey")
   .setImage("http://www.snoopysticker.com?id=1234")
   // see: Support links to your app content section
   .setUrl("http://sticker/canonical/image/hey")
   // Set the accessibility label for the sticker.
   .setDescription("A sticker for hi")
   // Add search keywords.
   .put("keywords", "hey", "snoopy", "hi", "hello")
   .put("isPartOf",
        new Indexable.Builder("StickerPack")
          .setName("Snoopy Pack"))
          .build())
   .build()),

为了搅浑水,在这个官方的 google firebase quickstart for app-indexing on github中,他们使用 hasSticker 和 isPartOf 方法遇到了一些麻烦。为了使它更有趣,“isPartOf”已将其名称更改为“partOf”:

indexableStickerBuilder.put("keywords", "tag1_" + i, "tag2_" + i)
    // StickerPack object that the sticker is part of.
    .put("partOf", new Indexable.Builder("StickerPack")
        .setName(CONTENT_PROVIDER_STICKER_PACK_NAME)
        .build());

在定义 Sticker 及其与 StickerPack 的关系时,同时使用“hasSticker”和“isPartOf”有什么好处——或者只是其中一个就足够好了吗?

哪个是正确的:“partOf”或“isPartOf”——或者两者都是正确的?

4

0 回答 0