在文档中似乎没有提到这一点,我发现的只有这个和这个,我想在此证实:
如果现有帐户具有相同的电子邮件地址但使用其他凭据(例如密码或不可信提供商)创建,则出于安全原因,将删除先前的凭据.
如果用户通过Facebook或电子邮件/密码登录,稍后通过Google登录,则他们的帐户登录方式将转换为Google.它只发生在Google上,并且只有一个帐户的设置才有效.
它是否应该是这样的,有什么办法可以阻止它吗?
android facebook firebase firebase-authentication google-signin
我正在尝试按照Firebase的此文档教程设置Android Studio,以便在为我的Android应用程序构建发布APK时自动发送我的ProGuard映射文件.
但是,我似乎无法理解"使用Gradle上传ProGuard映射文件"部分中的步骤4和5,主要是因为我gradle.properties
在项目根目录或主路径中找不到任何文件,因为我希望自动执行app:firebaseUploadReleaseProguardMapping
Android Studio中的任务,我不知道该怎么做.
这是gradle.properties
我在项目根目录中创建的文件的内容:
FirebaseServiceAccountFilePath = /app/firebase-crash-reporting.json
Run Code Online (Sandbox Code Playgroud)
该firebase-crash-reporting.json
文件是我的Firebase崩溃报告私钥.我的映射文件是在/app/build/outputs/mapping/release/
目录中生成的,如果有帮助的话.
请帮助我完成这两个步骤并在Android Studio中自动化该过程.
我正在使用此代码使用服务在后台检测我的Android应用中的用户状态:
final FirebaseAuth mAuth = FirebaseAuth.getInstance();
final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference myConnectionsRef = database.getReference("connected-users").child(mAuth.getCurrentUser().getUid());
final DatabaseReference lastOnlineRef = database.getReference("/registered-users/").child(mAuth.getCurrentUser().getUid()).child("/lastOnline");
final DatabaseReference connectedRef = database.getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
DatabaseReference con = myConnectionsRef.push();
lastOnlineRef.onDisconnect().setValue(ServerValue.TIMESTAMP);
con.onDisconnect().removeValue();
con.setValue(Boolean.TRUE);
Log.i("CONNECTED", "true");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Run Code Online (Sandbox Code Playgroud)
问题似乎是每个小时,从我发现的,再次检索身份验证令牌,并在此期间,它创建一个新的条目显示用户已连接.该条目不会被删除,从而创建一个ghost用户.
我尝试了多种解决方案,例如添加我的SHA1密钥并将新的google-services.json文件用于我的项目,但收效甚微.似乎问题是身份验证,因为当我从数据库中删除身份验证规则时,这不再发生.
这里有一些显示问题的日志:
I/art: Enabling alloc tracker (65536 entries of 16 frames, taking 8MB)
W/PersistentConnection: pc_0 - Auth token …
Run Code Online (Sandbox Code Playgroud) android firebase firebase-authentication firebase-realtime-database
我之前在为Android实施应用内结算方面遇到了问题.我已经解决了这个问题,但是接下来是另一个问题.当我在手机和另一个测试帐户电话上运行应用程序时,出现错误:"此版本的应用程序未配置为市场结算." 我已经将新版本的应用程序作为APK安装到Android市场并添加了这些项目.当它打开应用内结算时,它会显示要从Android市场购买的商品的名称,但会给我错误.当我尝试Google的静态示例时,这很有效.
谢谢
如果我有一个如下所示的 XML 文件,我如何将版本从 50 更改为 51?
<?xml version="1.0" encoding="UTF-8"?>
<config>
<updateCheck seconds="2" />
<unturnedVersion version="50" />
<unturnedFolder recoveryBundlesAfterUpdates="false" />
<rocket useRocket="true" apikey=""/>
<steam username="" password="" />
<steamUpdates validate="true" />
<servers rconEnabled="false">
<server name="server1" rconPort="27013" rconPassword="pass" />
<server name="server2" rconPort="27014" rconPassword="pass" />
</servers>
<notifyBefore seconds="60" />
</config>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了多种方法来做到这一点,有些方法没有做任何事情,或者它只是在代码底部创建了一个新版本的 unturnedVersion 51。我只想将 50 更改为 51 或我设置的任何其他值。
谢谢!