小编koc*_*eng的帖子

某些Android设备中的FCM令牌问题

FCM专家请帮助我,我不得不通知使用FCM,我试图通过火力地堡给出的演示Android的整合,我试过很多逻辑,但它给了一些设备第一令牌:我使用了三个设备,MOTO E(第2根)(Android版本5.1.1),三星GT-S7562(AV 4.1.2)和Karbon钛(AV 4.2.2),我收到令牌仅Karbon钛,不知道为什么我没有收到Moto E(2 Gen)和Samsung GT-S7562的令牌,但是从karbon Titanium设备接收令牌:

这是我试过的代码:

Logcat Moto E2:

07-07 15:58:08.776 24152-24152/? I/art: Late-enabling -Xcheck:jni
07-07 15:58:08.802 24152-24162/? E/art: Failed sending reply to debugger: Broken pipe
07-07 15:58:08.802 24152-24162/? I/art: Debugger is no longer active
07-07 15:58:08.848 24152-24152/? D/FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
07-07 15:58:08.859 24152-24152/? D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
07-07 15:58:08.872 24152-24152/? I/FA: App measurement is starting up, version: 9256
07-07 15:58:08.872 24152-24152/? I/FA: To enable debug logging run: adb shell …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication firebase-cloud-messaging

11
推荐指数
1
解决办法
3197
查看次数

NoClassDefFoundError:com.google.firebase.FirebaseOptions

我继续NoClassDefFoundError使用我正在使用的其他测试设备(4.4.2).但在我的测试设备(Android 5.1)上工作正常.

我尝试了用Google搜索的解决方案,似乎没有任何效果.

我正在使用Firebase实时数据库.有人可以帮忙吗?

这是错误日志:

06-03 01:36:29.607 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseOptions', referenced from method com.google.firebase.FirebaseApp.<init> 06-03 01:36:29.617 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zzb', referenced from method com.google.firebase.FirebaseApp.zzaJ 06-03 01:36:29.621 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApiNotAvailableException', referenced from method com.google.firebase.FirebaseApp.getToken 06-03 01:36:29.629 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zza', referenced from method com.google.firebase.FirebaseApp.zza 06-03 01:36:29.639 2655-2655/mobapps.mypersonal.biz.grouptracker E/AndroidRuntime: FATAL EXCEPTION: main
    Process: mobapps.mypersonal.biz.grouptracker, PID: 2655
    java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
        at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1656) …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication firebase-realtime-database

10
推荐指数
2
解决办法
2万
查看次数

与订阅的observable相关的注销权限错误

我有一个组件,我订阅了一个observable来从Firebase中提取数据.相关的订阅代码类似于:

[ 注意:下面更新/更正的代码.]

// in my component
ngOnInit() {
  // this.af is an injected AngularFire2 instance
  this.tasks = this.af.database.list('/tasks')
    .subscribe(tasks => this.tasks = tasks);
}
Run Code Online (Sandbox Code Playgroud)

必须对用户进行身份验证才能查看此组件,并且我有一个确保这一点的路由防护.

但是,当我注销时,我收到此错误:

客户端无权访问所需数据

我正在退出以下内容:

// this.auth is an injected FirebaseAuth instance
this.auth.logout();
this.router.navigate(['/login']);
Run Code Online (Sandbox Code Playgroud)

navigate调用路由器方法之前发生错误.问题是我有这个活动任务观察者订阅与一个开放的Web套接字连接,在logout调用该方法之后错误输出,因为用户不再经过身份验证.

任务订阅和注销功能位于我的应用程序的不同部分.如果他们在同一个地方,我想我可以unsubscribe在我退出时调用订阅上的方法.但即便如此,在我的logout方法中坚持使用此订阅取消逻辑似乎很麻烦.我不太清楚如何处理这件事.

如何在注销时取消对任务观察者的订阅?

在Alexander Leonov关于重复分配的评论之后更新了代码

亚历山大指出我this.tasks两次分配给该物业.好点子!这段代码不正确.我没有将订阅分配给一个属性.代码应该如下所示:

ngOnInit() {
  // this.af is an injected AngularFire2 instance
  this.af.database.list('/tasks')
    .subscribe(tasks => this.tasks = tasks);
}
Run Code Online (Sandbox Code Playgroud)

感谢你指出这一点,亚历山大.

解决方案:我最终做了什么

我能够通过Alexander Leonov关于取消订阅ngOnDestroy我的组件的评论来解决这个问题.

在我的任务组件中使用他的代码:

ngOnInit() { …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-authentication angularfire2 angular

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

使用Firebase序列化/反序列化命名约定?

我想知道Firebase如何将POJO对象序列化/反序列化为json,是否使用Jackson或Gson或其他类似的库.
我在使用Firebase 命名约定方面遇到了麻烦.我的模特有点像这样:

class Data {
    private String someFieldName;
    private String anotherFieldName;
    public Data() {}
    public void setSomeFieldName(String) {...}
    public String getSomeFieldName(String) {...}
    public void setAnotherFieldName(String) {...}
    public String getAnotherFieldName() {...}
}
Run Code Online (Sandbox Code Playgroud)

Firebase中的预期结果应为:

{
    "some_field_name" : "...",
    "another_field_name" : "..."
}
Run Code Online (Sandbox Code Playgroud)

Gson我可以FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES用于我的目的,如在Gson doc中:

以下是"Java字段名称"--->"JSON字段名称"形式的几个示例:

  • someFieldName ---> some_field_name
  • _someFieldName ---> _some_field_name

  • aStringField ---> a_string_field

  • aURL ---> a_u_r_l

如何将我的POJO对象转换为具有特定命名约定的"Firebase值",反之亦然,或者有什么方法可以自定义序列化/反序列化过程?

谢谢!

android json firebase firebase-realtime-database

8
推荐指数
1
解决办法
2921
查看次数

使用React Native/Redux和Firebase保持身份验证

我有一个相当简单的React native/Redux应用程序,并且最近添加了Redux persist with AsyncStorage以帮助在重新加载时继承状态.

但是,我在让Firebase重新验证用户时遇到问题.我想知道是否有人有经验,因为我对Redux和Firebase都很新.为了更清楚,我希望用户登录一次,然后每次打开应用程序时都不再登录.

我的登录用户操作:

export const loginUser = ({ email, password }) => {
  return (dispatch) => {

    dispatch({ type: LOGIN_USER });

    firebase.auth().signInWithEmailAndPassword(email, password)
      .then(user => loginUserSuccess(dispatch, user))
      .catch(() => {
        firebase.auth().createUserWithEmailAndPassword(email, password)
          .then(user => loginUserSuccess(dispatch, user))
          .catch(() => loginUserFail(dispatch));
      });
  };
};
Run Code Online (Sandbox Code Playgroud)

我的App.js:

    class App extends Component {

    constructor() {
      super();
      this.state = {
        rehydrated: false,
        store
      };
    }

  componentDidMount() {

    const persistor = persistStore(
      store,
      {
        storage: AsyncStorage,
        whitelist: ['auth']
      },
      () => { this.setState({ …
Run Code Online (Sandbox Code Playgroud)

firebase react-native firebase-authentication redux

8
推荐指数
1
解决办法
2109
查看次数

适用于iOS和Android应用的相同Firebase实例

我是Android新手,但我已经为iOS应用程序设置了Firebase后端.现在我开始编写应该访问相同Firebase后端的Android版本.

我的问题是这个......我是否需要为Android后端创建一个新的Firebase实例!?我希望使用我为iOS应用程序创建的相同Firebase实例?

android ios firebase

8
推荐指数
1
解决办法
4341
查看次数

PHPUnit在PHPStorm中不起作用

我有以下测试文件,PHPUnit网站上的一个例子.

<?php

require_once 'PHPUnit/Autoload.php';

class StackTest extends PHPUnit_Framework_TestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

我试图在PHPStorm 5.0中运行它,但我收到以下错误:

E:\wamp\bin\php\php5.3.13\php.exe C:\Users\<user>\AppData\Local\Temp\ide-phpunit.php --no-configuration StackTest E:\wamp\www\renting\tests\StackTest.php
Testing started at 03:37 ...

SCREAM:  Error suppression ignored for
Warning: require_once(PHPUnit/Runner/Version.php): failed to open stream: No such file or directory in C:\Users\<user>\AppData\Local\Temp\ide-phpunit.php on line 166
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它要去C:当我设置包含路径到E:?

phpunit phpstorm

7
推荐指数
1
解决办法
8505
查看次数

为什么两个FirebaseDatabase客户端脱机方法?

FirebaseDatabase提供了两种使客户端脱机的方法:

DatabaseReference.goOffline()

手动断开Firebase数据库客户端与服务器的连接并禁用自动重新连接.注意:调用此方法将影响所有Firebase数据库连接.

FirebaseDatabase.goOffline()

关闭我们与Firebase数据库后端的连接,直到调用goOnline().

调用FirebaseDatabase.getInstance().goOffline()产生预期结果:

  1. ValueEventListener 用于断开连接的".info/connected"触发
  2. OnDisconnect 行动执行
  3. ValueEventListener用于远程更改的s不会触发,用于本地更改的用途
  4. CompletionListener不要开火

打电话DatabaseReference.goOffline()似乎没有效果.上面列出的行为都不会发生.它坏了吗?如果没有,它与另一个有goOffline()什么不同?

android firebase firebase-realtime-database

7
推荐指数
1
解决办法
634
查看次数

如何在Android中将数据从SqLite迁移到Firebase实时数据库?

在我的第一个版本的Android应用程序中,我使用了SQLite数据库.现在我想将所有内容转换为Firebase实时数据库.由于firebase的离线功能,我不想再使用SQLite数据库了.由于以前版本的应用程序拥有大量用户并且每个人都有自己的数据存储,我不希望用户在升级应用程序时丢失数据.我如何将以前版本的SQLite数据库迁移到新版Firebase实时数据库?TIA

sqlite android firebase firebase-realtime-database

6
推荐指数
0
解决办法
1849
查看次数

Android Firebase数据库错误:权限被拒绝

我正在开发一个需要用户电子邮件和密码认证的android项目.详细信息存储在firebase数据库中.每当我尝试使用电子邮件和密码再次登录时,就会出现问题.在我的logcat中,错误消息是:

W/SyncTree: Listen at / failed: DatabaseError: Permission denied
Run Code Online (Sandbox Code Playgroud)

看看下面的代码:

public class LoginUser extends AppCompatActivity {

private RelativeLayout relativeLayout;

private EditText et_email, et_password;
private Button loginBtn;

private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener authStateListener;
private DatabaseReference databaseReference;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login_user);

    mAuth = FirebaseAuth.getInstance();
    databaseReference = FirebaseDatabase.getInstance().getReference();
    databaseReference.keepSynced(true);

    relativeLayout = (RelativeLayout) findViewById(R.id.activity_login_user);

    et_email = (EditText) findViewById(R.id.emailField);
    et_password = (EditText) findViewById(R.id.pwdField);
    loginBtn = (Button) findViewById(R.id.loginBtn);

    loginBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            initLogin();
        }
    });

    authStateListener = …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication firebase-realtime-database

6
推荐指数
4
解决办法
2万
查看次数