Firebase android при фактическом выполнении запроса [дубликат]

Не ответ, но добавление: я получил, потому что запустил groovysh (Groovy 2.4.13), если JAVA_HOME указывает на установку Java 9 (точнее, java version "9.0.1"):

java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:107)
        at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:129)
Caused by: java.lang.NoClassDefFoundError: Unable to load class groovy.xml.jaxb.JaxbGroovyMethods due to missing dependency javax/xml/bind/JAXBContext
        at org.codehaus.groovy.vmplugin.v5.Java5.configureClassNode(Java5.java:400)
        at org.codehaus.groovy.ast.ClassNode.lazyClassInit(ClassNode.java:277)
        at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:397)
        ...
        ..
        .
        ..
        ...
        at org.codehaus.groovy.tools.shell.Groovysh.(Groovysh.groovy:135)
        at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)
        at org.codehaus.groovy.tools.shell.Main.(Main.groovy:66)
        at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)
        at org.codehaus.groovy.tools.shell.Main.main(Main.groovy:163)
... 6 more

Решение было:

  • Перейти к проекту JAXB в github.io ( "JAXB лицензируется по двойной лицензии - CDDL 1.1 и GPL 2.0 с исключением Class-path ")
  • Загрузите jaxb-ri-2.3.0.zip
  • Разархивируйте, куда бы вы не вложили файлы инфраструктуры java (в моем случае, /usr/local/java/jaxb-ri/). Другое решение может существовать (возможно, через SDKMAN, я dunno)
  • Убедитесь, что банки в подкаталоге lib находятся на CLASSPATH. Я делаю это через скрипт, запущенный при запуске bash, называемый /etc/profile.d/java.sh, где я добавил (среди многих других строк) следующий цикл:

Упакован в функцию ...

function extend_qzminynshg {
   local BASE="/usr/local/java"
   for LIB in jaxb-api.jar  jaxb-core.jar  jaxb-impl.jar  jaxb-jxc.jar  jaxb-xjc.jar; do
      local FQLIB="$BASE/jaxb-ri/lib/$LIB"
      if [[ -f $FQLIB ]]; then
         export CLASSPATH=$FQLIB:$CLASSPATH
      fi
    done
}

extend_qzminynshg; unset extend_qzminynshg

И это работает!

19
задан Mohit Sharma 27 May 2016 в 07:41
поделиться

1 ответ

Это потому, что вы не авторизованы в базе данных, проверьте вкладку «Правила» в базе данных Realtime

Если это

{
  "rules": {
    ".read": "auth != null",
    ".write":"auth != null"
  }
}

Это означает, что только авторизованный пользователь может писать и читать Данные.

Изменение на

{
  "rules": {
    ".read": true,
    ".write":true
  }
}

Позволяет кому-либо писать базу данных

. При переходе на Production обязательно используйте первый

75
ответ дан manfcas 1 September 2018 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: