【问题标题】:Firebase App InviteFirebase 应用邀请
【发布时间】:2018-06-12 10:02:03
【问题描述】:

我刚刚在我的 Android 应用中实现了 Firebase 邀请。我按照 API Specs @ https://firebase.google.com/docs/invites/android 遵循了在线文档@

根据我在 onActivityResult 方法中实现了以下代码。

@override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    Log.d(TAG, "onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode);
    if (requestCode == REQUEST_INVITE) 
    {
        if (resultCode == RESULT_OK) 
        {
            // Get the invitation IDs of all sent messages
            String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data);
            for (String id : ids) 
            {
                Log.d(TAG, "onActivityResult: sent invitation " + id);
            }
        } 
        else 
        {

        }
    }
}

目前 Intent 只为生成的邀请 IDS 设置了额外的参数,即我们只能获取生成的邀请 Id。

我们是否有办法从联系人提供商处获取在邀请页面中选择的联系人姓名(电子邮件/电话号码) 以可在 onActivityResult 中捕获的意图返回

类似

 T[] contacts = AppInviteInvitation.getInvitedContact(...)....

【问题讨论】:

    标签: java android firebase firebase-invites


    【解决方案1】:

    当前的 Firebase Invites API 不支持获取邀请收件人的联系信息。

    Android 操作系统将联系人视为受保护的信息。应用必须拥有READ_CONTACTS 权限才能访问联系信息。因为它被归类为dangerous permission,所以用户必须在安装应用程序(较旧的 API 级别)或需要时授予权限。

    我的猜测是 Firebase Invites API 的设计者没有提供对联系信息的访问权限,因此使用 API 的客户不需要该权限。发送邀请所需的联系信息在 SDK 的受保护部分中访问,因此客户端无需获得读取权限即可获得使用联系信息的好处。这使得使用邀请的应用更安全,对想要限制对其联系人的访问的用户更具吸引力。

    【讨论】:

    • 谢谢鲍勃。我打算做的是在发件人端打印确认信息,并存储联系人的姓名及其邀请 ID,并将其标记为待处理。类似于朋友请求的东西......一旦收件人实际点击邀请的底层动态链接......应用程序将使用邀请 ID 向我的应用程序服务器发送一条消息,它可以标记为“已接受”...... .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    相关资源
    最近更新 更多