小编Ale*_*huk的帖子

如何使用Play Billing Library手动续订订阅?

我在Android应用中使用Play Billing Library v1.0进行应用内结算支持,并希望允许用户在其有效期内手动续订订阅,以便在适当的时间段内对其进行延期.

当用户可以通过折扣扩展订阅时,它可以用于不同的销售(黑色星期五,新年等).

根据官方文档,这种行为确实可以实现.但我没有找到如何实现它的信息.

我使用以下标准代码购买订阅:

BillingFlowParams.Builder builder = BillingFlowParams.newBuilder()
        .setSku(skuId).setType(SkuType.SUBS);
int responseCode = mBillingClient.launchBillingFlow(activity, builder.build());
Run Code Online (Sandbox Code Playgroud)

如果我再次尝试购买相同的订阅,那么

"你已经订阅了XXXXX [确定]"

出现错误消息.

我也尝试使用.addOldSku()构建器方法并在此处传递相同的sku,但它也没有帮助.

android google-play play-billing-library

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

适用于Android的Firebase - W/PersistentConnection:pc_0 - 提供的身份验证凭据无效

我在Android项目中使用Firebase(版本10.0.0),并遇到Firebase数据库的以下问题:

前提条件:用户使用Google帐户通过Firebase Auth登录(FirebaseAuth.getInstance().getCurrentUser()返回非空值).

  1. 在Main Activity的onCreate方法中,我从Firebase数据库中读取了一些值:

FirebaseDatabase.getInstance() .getReference() .child(NODE_USERS).child(user.getUid()).child(NODE_DICTIONARY_VERSION) .addListenerForSingleValueEvent(...);

  1. 它工作正常.但一段时间后,上述方法进入某种无限循环的(没有错误,没有onCancelled呼叫ValueEventListener).日志中还会显示以下消息:
W/PersistentConnection: pc_0 - Provided authentication credentials are invalid. 
This usually indicates your FirebaseApp instance was not initialized correctly. 
Make sure your google-services.json file has the correct firebase_url and api_key. 
You can re-download google-services.json from https://console.firebase.google.com/

之后,对Firebase数据库的所有其他调用(读取,写入,删除等)也不起作用.

为了解决这个问题,我尝试了

  1. 在访问Firebase数据库之前在应用程序启动时执行静默登录
FirebaseAuth.getInstance().getCurrentUser()
.reauthenticate(credential).addOnCompleteListener(...);
  1. 重新连接Firebase数据库:
FirebaseDatabase.getInstance().goOffline();
FirebaseDatabase.getInstance().goOnline();

因此,Firebase数据库出现的问题并不常见,至少在一天过后.如果重新启动整个应用程序,问题也会消失一段时间(没有这些修复,每次都会重现问题,只有重新登录才有帮助).

无论如何,问题仍然存在,应用程序重启是一个非常糟糕的解决方案:)

知道如何解决这个问题吗?或者也许我做错了什么?

完整的Firebase日志:

12-19 13:03:40.544  D/FirebaseAuth: Notifying listeners about user ( HbY7R8FPR6QwgstQd3wmypI2nwJ2 ).
12-19 13:03:40.546  D/FirebaseApp: Notifying auth state listeners. …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

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