实施 Algolia 时出现“没有足够的权限添加对象”的错误

24

我正在尝试在Algolia中索引联系人。
这是我的代码:

StreamReader re = File.OpenText("contacts.json");
JsonTextReader reader = new JsonTextReader(re);`
JArray batch = JArray.Load(reader);
// Add objects 
Index index = client.InitIndex("contacts");

index.AddObjects(batch);

我在最后一行代码遇到了一个错误:

Not enough rights to add an object

1
你应该先阅读如何在StackOverflow上提问 - Jerska
1
关于您的特定错误,似乎您正在使用的API密钥不允许您索引对象。 - Jerska
@Jerska 我肯定会提高我的“提问技巧”。显然,我使用的密钥只是用于搜索。我使用了管理员密钥,它运行得很好。非常感谢。 - Ketan Vaghasiya
我会将这个作为答案发布,以便我们可以关闭问题。 - Jerska
3个回答

61

看起来你正在使用一个在Algolia没有"添加记录"访问控制列表(ACL)的API密钥。

你可能使用了你的搜索API密钥,而想要使用一个具有写入权限到你的索引的API密钥,例如你的管理API密钥。


1
管理员 API 密钥用于“添加/更新”索引操作,因此请使用它。 - Qaiser Mehmood
3
创建自定义API密钥并带有写入ACL(addObjectdeleteObjectsettingseditSettings以及阅读权限的searchbrowse等)并限制到一部分索引是个好主意。这样,如果您不小心泄漏了该密钥,也不会对使用Algolia的其他应用程序产生影响。 - Jerska

4
您可以创建一个新的API密钥,并为其分配特定的权限,以在ACL输入字段中进行搜索和添加对象。在选择“ALL API Keys”时,您可以在仪表板中创建新的API密钥。
Algolia建议仅将您的管理员密钥用于后端搜索,并为前端搜索创建新密钥。
以下是Algolia提供的一些支持文档:https://www.algolia.com/doc/guides/security/api-keys/#rights-and-restrictions

3
我之所以会遇到此错误,是因为在使用Algolia扩展时,在Firebase中使用了搜索API。奇怪的是,它说“不要使用管理API密钥”,但是管理员密钥却起作用了...

1
使用管理员 API 密钥并不是一个好的解决方案。相反,您可以创建一个新的 API 密钥并设置访问权限。 - nipun-kavishka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接